【问题标题】:Configure gradle "maven-publish" plugin directly from my custom plugin直接从我的自定义插件配置 gradle“maven-publish”插件
【发布时间】:2020-05-10 14:07:07
【问题描述】:

我是 gradle 新手,想创建自定义 gradle 插件,应用 maven-publish 插件。此外,我的插件应该配置 maven-publish 插件,以便另一个插件用户什么都不做。我的插件会自动配置maven-publish。 我试图找到任何相同的教程,但没有找到。 如何从我的自定义插件中配置maven-publish gradle 插件?

【问题讨论】:

    标签: gradle maven-publish


    【解决方案1】:

    从自定义插件配置其他插件非常常见。您应该能够参考任何自定义插件作为示例。对于maven-publish,我创建了以下示例:

    import org.gradle.api.Plugin;
    import org.gradle.api.Project;
    import org.gradle.api.publish.PublishingExtension;
    import org.gradle.api.publish.maven.MavenPublication;
    import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
    
    import java.net.URI;
    
    public class MyPlugin implements Plugin<Project> {
    
        @Override
        public void apply(Project project) {
            project.getPluginManager().apply(MavenPublishPlugin.class);
    
            project.getExtensions().configure(PublishingExtension.class, publishing -> {
                publishing.repositories(repositories -> {
                    repositories.maven(maven -> {
                       maven.setUrl(URI.create("https://my-publishing-repo.com"));
                    });
                });
                publishing.publications(publications -> {
                    publications.create("mavenJava", MavenPublication.class, mavenJava -> {
                        mavenJava.artifact(project.getTasks().named("bootJar"));
                    });
                });
            });
        }
    
    }
    

    这相当于 Gradle 构建文件 (Kotlin DSL) 中的以下内容:

    plugins {
        `maven-publish`
    }
    
    publishing {
        repositories {
            maven {
                url = uri("https://my-publishing-repo.com")
            }
        }
        publications {
            create<MavenPublication>("mavenJava") {
                artifact(tasks.named("bootJar").get())
            }
        }
    }
    

    请参阅我的指导中的以下指南:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 2020-04-09
      • 2021-12-25
      相关资源
      最近更新 更多