Java源码示例:org.gradle.api.publish.PublishingExtension
示例1
public void apply(final Project project) {
project.getPlugins().apply(PublishingPlugin.class);
final TaskContainer tasks = project.getTasks();
final Task publishLocalLifecycleTask = tasks.create(PUBLISH_LOCAL_LIFECYCLE_TASK_NAME);
publishLocalLifecycleTask.setDescription("Publishes all Maven publications produced by this project to the local Maven cache.");
publishLocalLifecycleTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
// Can't move this to rules yet, because it has to happen before user deferred configurable actions
project.getExtensions().configure(PublishingExtension.class, new Action<PublishingExtension>() {
public void execute(PublishingExtension extension) {
// Register factory for MavenPublication
extension.getPublications().registerFactory(MavenPublication.class, new MavenPublicationFactory(dependencyMetaDataProvider, instantiator, fileResolver));
}
});
}
示例2
private void createPublishTasksForEachMavenRepo(CollectionBuilder<Task> tasks, PublishingExtension extension, final Task publishLifecycleTask, final MavenPublicationInternal publication,
final String publicationName) {
for (final MavenArtifactRepository repository : extension.getRepositories().withType(MavenArtifactRepository.class)) {
final String repositoryName = repository.getName();
String publishTaskName = String.format("publish%sPublicationTo%sRepository", capitalize(publicationName), capitalize(repositoryName));
tasks.create(publishTaskName, PublishToMavenRepository.class, new Action<PublishToMavenRepository>() {
public void execute(PublishToMavenRepository publishTask) {
publishTask.setPublication(publication);
publishTask.setRepository(repository);
publishTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
publishTask.setDescription(String.format("Publishes Maven publication '%s' to Maven repository '%s'.", publicationName, repositoryName));
//Because dynamic rules are not yet implemented we have to violate input immutability here as an interim step
publishLifecycleTask.dependsOn(publishTask);
}
});
}
}
示例3
public ModuleVersionIdentifier resolve(ProjectDependency dependency) {
Project dependencyProject = dependency.getDependencyProject();
((ProjectInternal) dependencyProject).evaluate();
PublishingExtension publishing = dependencyProject.getExtensions().findByType(PublishingExtension.class);
if (publishing == null || publishing.getPublications().withType(PublicationInternal.class).isEmpty()) {
// Project does not apply publishing (or has no publications): simply use the project name in place of the dependency name
return new DefaultModuleVersionIdentifier(dependency.getGroup(), dependencyProject.getName(), dependency.getVersion());
}
// See if all publications have the same identifier
Set<? extends PublicationInternal> publications = publishing.getPublications().withType(PublicationInternal.class);
Iterator<? extends PublicationInternal> iterator = publications.iterator();
ModuleVersionIdentifier candidate = iterator.next().getCoordinates();
while (iterator.hasNext()) {
ModuleVersionIdentifier alternative = iterator.next().getCoordinates();
if (!candidate.equals(alternative)) {
throw new UnsupportedOperationException("Publishing is not yet able to resolve a dependency on a project with multiple different publications.");
}
}
return candidate;
}
示例4
public void apply(final Project project) {
project.getPlugins().apply(PublishingPlugin.class);
final TaskContainer tasks = project.getTasks();
final Task publishLifecycleTask = tasks.getByName(PublishingPlugin.PUBLISH_LIFECYCLE_TASK_NAME);
final Task publishLocalLifecycleTask = tasks.create(PUBLISH_LOCAL_LIFECYCLE_TASK_NAME);
publishLocalLifecycleTask.setDescription("Publishes all Maven publications produced by this project to the local Maven cache.");
publishLocalLifecycleTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
// Can't move this to rules yet, because it has to happen before user deferred configurable actions
project.getExtensions().configure(PublishingExtension.class, new Action<PublishingExtension>() {
public void execute(PublishingExtension extension) {
// Register factory for MavenPublication
extension.getPublications().registerFactory(MavenPublication.class, new MavenPublicationFactory(dependencyMetaDataProvider, instantiator, fileResolver));
}
});
modelRules.rule(new MavenPublishTaskModelRule(project, publishLifecycleTask, publishLocalLifecycleTask));
}
示例5
public ModuleVersionIdentifier resolve(ProjectDependency dependency) {
Project dependencyProject = dependency.getDependencyProject();
((ProjectInternal) dependencyProject).evaluate();
PublishingExtension publishing = dependencyProject.getExtensions().findByType(PublishingExtension.class);
if (publishing == null || publishing.getPublications().withType(PublicationInternal.class).isEmpty()) {
// Project does not apply publishing (or has no publications): simply use the project name in place of the dependency name
return new DefaultModuleVersionIdentifier(dependency.getGroup(), dependencyProject.getName(), dependency.getVersion());
}
// See if all publications have the same identifier
Set<? extends PublicationInternal> publications = publishing.getPublications().withType(PublicationInternal.class);
Iterator<? extends PublicationInternal> iterator = publications.iterator();
ModuleVersionIdentifier candidate = iterator.next().getCoordinates();
while (iterator.hasNext()) {
ModuleVersionIdentifier alternative = iterator.next().getCoordinates();
if (!candidate.equals(alternative)) {
throw new UnsupportedOperationException("Publishing is not yet able to resolve a dependency on a project with multiple different publications.");
}
}
return candidate;
}
示例6
@Override
public void apply(Project project) {
project.getPlugins().apply(MavenPublishPlugin.class);
project.getPlugins().apply(GithubPomPlugin.class);
GithubExtension githubExtension = project.getRootProject().getExtensions().getByType(GithubExtension.class);
project.afterEvaluate(p -> p.getExtensions().getByType(PublishingExtension.class)
.getRepositories()
.maven(githubRepo -> {
githubRepo.setName("GithubPackageRegistry");
githubRepo.setUrl("https://maven.pkg.github.com/" + githubExtension.getSlug().get());
if (githubExtension.getUsername().isPresent() && githubExtension.getToken().isPresent()) {
githubRepo.credentials(passwordCredentials -> {
passwordCredentials.setUsername(githubExtension.getUsername().get());
passwordCredentials.setPassword(githubExtension.getToken().get());
});
}
}));
}
示例7
@Override
public void apply(Project project) {
project.getPlugins().apply(MavenPublishPlugin.class);
project.getPlugins().apply(GithubPomPlugin.class);
GithubExtension githubExtension = project.getRootProject().getExtensions().getByType(GithubExtension.class);
project.afterEvaluate(p -> p.getExtensions().getByType(PublishingExtension.class)
.getRepositories()
.maven(githubRepo -> {
githubRepo.setName("GithubPackageRegistry");
githubRepo.setUrl("https://maven.pkg.github.com/" + githubExtension.getSlug().get());
if (githubExtension.getUsername().isPresent() && githubExtension.getToken().isPresent()) {
githubRepo.credentials(passwordCredentials -> {
passwordCredentials.setUsername(githubExtension.getUsername().get());
passwordCredentials.setPassword(githubExtension.getToken().get());
});
}
}));
}
示例8
public void apply(final Project project) {
project.getPlugins().apply(PublishingPlugin.class);
final TaskContainer tasks = project.getTasks();
final Task publishLocalLifecycleTask = tasks.create(PUBLISH_LOCAL_LIFECYCLE_TASK_NAME);
publishLocalLifecycleTask.setDescription("Publishes all Maven publications produced by this project to the local Maven cache.");
publishLocalLifecycleTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
// Can't move this to rules yet, because it has to happen before user deferred configurable actions
project.getExtensions().configure(PublishingExtension.class, new Action<PublishingExtension>() {
public void execute(PublishingExtension extension) {
// Register factory for MavenPublication
extension.getPublications().registerFactory(MavenPublication.class, new MavenPublicationFactory(dependencyMetaDataProvider, instantiator, fileResolver));
}
});
}
示例9
private void createPublishTasksForEachMavenRepo(CollectionBuilder<Task> tasks, PublishingExtension extension, final Task publishLifecycleTask, final MavenPublicationInternal publication,
final String publicationName) {
for (final MavenArtifactRepository repository : extension.getRepositories().withType(MavenArtifactRepository.class)) {
final String repositoryName = repository.getName();
String publishTaskName = String.format("publish%sPublicationTo%sRepository", capitalize(publicationName), capitalize(repositoryName));
tasks.create(publishTaskName, PublishToMavenRepository.class, new Action<PublishToMavenRepository>() {
public void execute(PublishToMavenRepository publishTask) {
publishTask.setPublication(publication);
publishTask.setRepository(repository);
publishTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
publishTask.setDescription(String.format("Publishes Maven publication '%s' to Maven repository '%s'.", publicationName, repositoryName));
//Because dynamic rules are not yet implemented we have to violate input immutability here as an interim step
publishLifecycleTask.dependsOn(publishTask);
}
});
}
}
示例10
public ModuleVersionIdentifier resolve(ProjectDependency dependency) {
Project dependencyProject = dependency.getDependencyProject();
((ProjectInternal) dependencyProject).evaluate();
PublishingExtension publishing = dependencyProject.getExtensions().findByType(PublishingExtension.class);
if (publishing == null || publishing.getPublications().withType(PublicationInternal.class).isEmpty()) {
// Project does not apply publishing (or has no publications): simply use the project name in place of the dependency name
return new DefaultModuleVersionIdentifier(dependency.getGroup(), dependencyProject.getName(), dependency.getVersion());
}
// See if all publications have the same identifier
Set<? extends PublicationInternal> publications = publishing.getPublications().withType(PublicationInternal.class);
Iterator<? extends PublicationInternal> iterator = publications.iterator();
ModuleVersionIdentifier candidate = iterator.next().getCoordinates();
while (iterator.hasNext()) {
ModuleVersionIdentifier alternative = iterator.next().getCoordinates();
if (!candidate.equals(alternative)) {
throw new UnsupportedOperationException("Publishing is not yet able to resolve a dependency on a project with multiple different publications.");
}
}
return candidate;
}
示例11
public void apply(final Project project) {
project.getPlugins().apply(PublishingPlugin.class);
final TaskContainer tasks = project.getTasks();
final Task publishLifecycleTask = tasks.getByName(PublishingPlugin.PUBLISH_LIFECYCLE_TASK_NAME);
final Task publishLocalLifecycleTask = tasks.create(PUBLISH_LOCAL_LIFECYCLE_TASK_NAME);
publishLocalLifecycleTask.setDescription("Publishes all Maven publications produced by this project to the local Maven cache.");
publishLocalLifecycleTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
// Can't move this to rules yet, because it has to happen before user deferred configurable actions
project.getExtensions().configure(PublishingExtension.class, new Action<PublishingExtension>() {
public void execute(PublishingExtension extension) {
// Register factory for MavenPublication
extension.getPublications().registerFactory(MavenPublication.class, new MavenPublicationFactory(dependencyMetaDataProvider, instantiator, fileResolver));
}
});
modelRules.rule(new MavenPublishTaskModelRule(project, publishLifecycleTask, publishLocalLifecycleTask));
}
示例12
public ModuleVersionIdentifier resolve(ProjectDependency dependency) {
Project dependencyProject = dependency.getDependencyProject();
((ProjectInternal) dependencyProject).evaluate();
PublishingExtension publishing = dependencyProject.getExtensions().findByType(PublishingExtension.class);
if (publishing == null || publishing.getPublications().withType(PublicationInternal.class).isEmpty()) {
// Project does not apply publishing (or has no publications): simply use the project name in place of the dependency name
return new DefaultModuleVersionIdentifier(dependency.getGroup(), dependencyProject.getName(), dependency.getVersion());
}
// See if all publications have the same identifier
Set<? extends PublicationInternal> publications = publishing.getPublications().withType(PublicationInternal.class);
Iterator<? extends PublicationInternal> iterator = publications.iterator();
ModuleVersionIdentifier candidate = iterator.next().getCoordinates();
while (iterator.hasNext()) {
ModuleVersionIdentifier alternative = iterator.next().getCoordinates();
if (!candidate.equals(alternative)) {
throw new UnsupportedOperationException("Publishing is not yet able to resolve a dependency on a project with multiple different publications.");
}
}
return candidate;
}
示例13
@Mutate
@SuppressWarnings("UnusedDeclaration")
public void realizePublishingTasks(CollectionBuilder<Task> tasks, @Path("tasks.publish") Task publishLifecycleTask, @Path("tasks.publishToMavenLocal") Task publishLocalLifecycleTask,
PublishingExtension extension) {
// Create generatePom tasks for any Maven publication
PublicationContainer publications = extension.getPublications();
for (final MavenPublicationInternal publication : publications.withType(MavenPublicationInternal.class)) {
String publicationName = publication.getName();
createGeneratePomTask(tasks, publication, publicationName);
createLocalInstallTask(tasks, publishLocalLifecycleTask, publication, publicationName);
createPublishTasksForEachMavenRepo(tasks, extension, publishLifecycleTask, publication, publicationName);
}
}
示例14
public void apply(final Project project) {
RepositoryHandler repositories = publicationServices.createRepositoryHandler();
PublicationContainer publications = instantiator.newInstance(DefaultPublicationContainer.class, instantiator);
// TODO Registering an extension should register it with the model registry as well
project.getExtensions().create(PublishingExtension.NAME, DefaultPublishingExtension.class, repositories, publications);
Task publishLifecycleTask = project.getTasks().create(PUBLISH_LIFECYCLE_TASK_NAME);
publishLifecycleTask.setDescription("Publishes all publications produced by this project.");
publishLifecycleTask.setGroup(PUBLISH_TASK_GROUP);
}
示例15
@Mutate
void addConfiguredPublicationsToProjectPublicationRegistry(ProjectPublicationRegistry projectPublicationRegistry, PublishingExtension extension, ProjectIdentifier projectIdentifier) {
for (Publication publication : extension.getPublications()) {
PublicationInternal internalPublication = (PublicationInternal) publication;
projectPublicationRegistry.registerPublication(projectIdentifier.getPath(), new DefaultProjectPublication(internalPublication.getCoordinates()));
}
}
示例16
public void apply(final Project project) {
project.getPlugins().apply(PublishingPlugin.class);
// Can't move this to rules yet, because it has to happen before user deferred configurable actions
project.getExtensions().configure(PublishingExtension.class, new Action<PublishingExtension>() {
public void execute(PublishingExtension extension) {
// Register factory for MavenPublication
extension.getPublications().registerFactory(IvyPublication.class, new IvyPublicationFactory(dependencyMetaDataProvider, instantiator, fileResolver));
}
});
}
示例17
@SuppressWarnings("UnusedDeclaration")
public void realizePublishingTasks(TaskContainer tasks, PublishingExtension extension) {
// Create generatePom tasks for any Maven publication
PublicationContainer publications = extension.getPublications();
for (final MavenPublicationInternal publication : publications.withType(MavenPublicationInternal.class)) {
String publicationName = publication.getName();
createGeneratePomTask(publication, publicationName);
createLocalInstallTask(tasks, publication, publicationName);
createPublishTasksForEachMavenRepo(tasks, extension, publication, publicationName);
}
}
示例18
private void createPublishTasksForEachMavenRepo(TaskContainer tasks, PublishingExtension extension, MavenPublicationInternal publication, String publicationName) {
for (MavenArtifactRepository repository : extension.getRepositories().withType(MavenArtifactRepository.class)) {
String repositoryName = repository.getName();
String publishTaskName = String.format("publish%sPublicationTo%sRepository", capitalize(publicationName), capitalize(repositoryName));
PublishToMavenRepository publishTask = tasks.create(publishTaskName, PublishToMavenRepository.class);
publishTask.setPublication(publication);
publishTask.setRepository(repository);
publishTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
publishTask.setDescription(String.format("Publishes Maven publication '%s' to Maven repository '%s'.", publicationName, repositoryName));
publishLifecycleTask.dependsOn(publishTask);
}
}
示例19
public void createTasks(TaskContainer tasks, PublishingExtension publishingExtension) {
PublicationContainer publications = publishingExtension.getPublications();
RepositoryHandler repositories = publishingExtension.getRepositories();
for (final IvyPublicationInternal publication : publications.withType(IvyPublicationInternal.class)) {
final String publicationName = publication.getName();
final String descriptorTaskName = String.format("generateDescriptorFileFor%sPublication", capitalize(publicationName));
GenerateIvyDescriptor descriptorTask = tasks.create(descriptorTaskName, GenerateIvyDescriptor.class);
descriptorTask.setDescription(String.format("Generates the Ivy Module Descriptor XML file for publication '%s'.", publication.getName()));
descriptorTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
descriptorTask.setDescriptor(publication.getDescriptor());
ConventionMapping descriptorTaskConventionMapping = new DslObject(descriptorTask).getConventionMapping();
descriptorTaskConventionMapping.map("destination", new Callable<Object>() {
public Object call() throws Exception {
return new File(project.getBuildDir(), "publications/" + publication.getName() + "/ivy.xml");
}
});
publication.setDescriptorFile(descriptorTask.getOutputs().getFiles());
for (IvyArtifactRepository repository : repositories.withType(IvyArtifactRepository.class)) {
final String repositoryName = repository.getName();
final String publishTaskName = String.format("publish%sPublicationTo%sRepository", capitalize(publicationName), capitalize(repositoryName));
PublishToIvyRepository publishTask = tasks.create(publishTaskName, PublishToIvyRepository.class);
publishTask.setPublication(publication);
publishTask.setRepository(repository);
publishTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
publishTask.setDescription(String.format("Publishes Ivy publication '%s' to Ivy repository '%s'.", publicationName, repositoryName));
tasks.getByName(PublishingPlugin.PUBLISH_LIFECYCLE_TASK_NAME).dependsOn(publishTask);
}
}
}
示例20
public void apply(final Project project) {
project.getPlugins().apply(PublishingPlugin.class);
// Can't move this to rules yet, because it has to happen before user deferred configurable actions
project.getExtensions().configure(PublishingExtension.class, new Action<PublishingExtension>() {
public void execute(PublishingExtension extension) {
// Register factory for MavenPublication
extension.getPublications().registerFactory(IvyPublication.class, new IvyPublicationFactory(dependencyMetaDataProvider, instantiator, fileResolver));
}
});
modelRules.rule(new IvyPublicationTasksModelRule(project));
}
示例21
@Override
public void apply(Project project) {
this.project = project;
githubBasePlugin = project.getRootProject().getPlugins().apply(GithubBasePlugin.class);
githubExtension = githubBasePlugin.getGithubExtension();
githubService = githubBasePlugin.getGithubClient().getGithubService();
project.getPlugins().withType(PublishingPlugin.class, publishingPlugin -> {
project.getExtensions().getByType(PublishingExtension.class).getPublications()
.withType(MavenPublication.class, this::configureMavenPublication);
});
}
示例22
@Override
public void apply(Project project) {
this.project = project;
project.getPlugins().apply(getPluginClass());
project.getPlugins().apply(MavenPublishPlugin.class);
publication = project.getExtensions().getByType(PublishingExtension.class)
.getPublications()
.create(getPublicationName(), MavenPublication.class);
project.afterEvaluate(p -> {
publication.from(getSoftwareComponent());
project.getPlugins().withType(SourcesJarPlugin.class, sourcesJarPlugin -> {
Jar sourcesJar = sourcesJarPlugin.getSourcesJar().get();
publication.artifact(sourcesJar);
});
project.getPlugins().withType(JavadocJarPlugin.class, javadocJarPlugin -> {
Jar javadocJar = javadocJarPlugin.getJavadocJar().get();
publication.artifact(javadocJar);
});
project.getPlugins().withType(SigningPlugin.class, signingPlugin -> project.getExtensions()
.getByType(SigningExtension.class)
.sign(publication)
);
});
}
示例23
@Override
public void apply(Project project) {
this.project = project;
githubBasePlugin = project.getRootProject().getPlugins().apply(GithubBasePlugin.class);
githubExtension = githubBasePlugin.getGithubExtension();
githubService = githubBasePlugin.getGithubClient().getGithubService();
project.getPlugins().withType(PublishingPlugin.class, publishingPlugin -> {
project.getExtensions().getByType(PublishingExtension.class).getPublications()
.withType(MavenPublication.class, this::configureMavenPublication);
});
}
示例24
@Override
public void apply(Project project) {
this.project = project;
project.getPlugins().apply(getPluginClass());
project.getPlugins().apply(MavenPublishPlugin.class);
publication = project.getExtensions().getByType(PublishingExtension.class)
.getPublications()
.create(getPublicationName(), MavenPublication.class);
project.afterEvaluate(p -> {
publication.from(getSoftwareComponent());
project.getPlugins().withType(SourcesJarPlugin.class, sourcesJarPlugin -> {
Jar sourcesJar = sourcesJarPlugin.getSourcesJar().get();
publication.artifact(sourcesJar);
});
project.getPlugins().withType(JavadocJarPlugin.class, javadocJarPlugin -> {
Jar javadocJar = javadocJarPlugin.getJavadocJar().get();
publication.artifact(javadocJar);
});
project.getPlugins().withType(SigningPlugin.class, signingPlugin -> project.getExtensions()
.getByType(SigningExtension.class)
.sign(publication)
);
});
}
示例25
@Mutate
@SuppressWarnings("UnusedDeclaration")
public void realizePublishingTasks(CollectionBuilder<Task> tasks, @Path("tasks.publish") Task publishLifecycleTask, @Path("tasks.publishToMavenLocal") Task publishLocalLifecycleTask,
PublishingExtension extension) {
// Create generatePom tasks for any Maven publication
PublicationContainer publications = extension.getPublications();
for (final MavenPublicationInternal publication : publications.withType(MavenPublicationInternal.class)) {
String publicationName = publication.getName();
createGeneratePomTask(tasks, publication, publicationName);
createLocalInstallTask(tasks, publishLocalLifecycleTask, publication, publicationName);
createPublishTasksForEachMavenRepo(tasks, extension, publishLifecycleTask, publication, publicationName);
}
}
示例26
public void apply(final Project project) {
RepositoryHandler repositories = publicationServices.createRepositoryHandler();
PublicationContainer publications = instantiator.newInstance(DefaultPublicationContainer.class, instantiator);
// TODO Registering an extension should register it with the model registry as well
project.getExtensions().create(PublishingExtension.NAME, DefaultPublishingExtension.class, repositories, publications);
Task publishLifecycleTask = project.getTasks().create(PUBLISH_LIFECYCLE_TASK_NAME);
publishLifecycleTask.setDescription("Publishes all publications produced by this project.");
publishLifecycleTask.setGroup(PUBLISH_TASK_GROUP);
}
示例27
@Mutate
void addConfiguredPublicationsToProjectPublicationRegistry(ProjectPublicationRegistry projectPublicationRegistry, PublishingExtension extension, ProjectIdentifier projectIdentifier) {
for (Publication publication : extension.getPublications()) {
PublicationInternal internalPublication = (PublicationInternal) publication;
projectPublicationRegistry.registerPublication(projectIdentifier.getPath(), new DefaultProjectPublication(internalPublication.getCoordinates()));
}
}
示例28
public void apply(final Project project) {
project.getPlugins().apply(PublishingPlugin.class);
// Can't move this to rules yet, because it has to happen before user deferred configurable actions
project.getExtensions().configure(PublishingExtension.class, new Action<PublishingExtension>() {
public void execute(PublishingExtension extension) {
// Register factory for MavenPublication
extension.getPublications().registerFactory(IvyPublication.class, new IvyPublicationFactory(dependencyMetaDataProvider, instantiator, fileResolver));
}
});
}
示例29
@SuppressWarnings("UnusedDeclaration")
public void realizePublishingTasks(TaskContainer tasks, PublishingExtension extension) {
// Create generatePom tasks for any Maven publication
PublicationContainer publications = extension.getPublications();
for (final MavenPublicationInternal publication : publications.withType(MavenPublicationInternal.class)) {
String publicationName = publication.getName();
createGeneratePomTask(publication, publicationName);
createLocalInstallTask(tasks, publication, publicationName);
createPublishTasksForEachMavenRepo(tasks, extension, publication, publicationName);
}
}
示例30
private void createPublishTasksForEachMavenRepo(TaskContainer tasks, PublishingExtension extension, MavenPublicationInternal publication, String publicationName) {
for (MavenArtifactRepository repository : extension.getRepositories().withType(MavenArtifactRepository.class)) {
String repositoryName = repository.getName();
String publishTaskName = String.format("publish%sPublicationTo%sRepository", capitalize(publicationName), capitalize(repositoryName));
PublishToMavenRepository publishTask = tasks.create(publishTaskName, PublishToMavenRepository.class);
publishTask.setPublication(publication);
publishTask.setRepository(repository);
publishTask.setGroup(PublishingPlugin.PUBLISH_TASK_GROUP);
publishTask.setDescription(String.format("Publishes Maven publication '%s' to Maven repository '%s'.", publicationName, repositoryName));
publishLifecycleTask.dependsOn(publishTask);
}
}