Gradle “配置渐变”;maven publish";直接从我的自定义插件插件

Gradle “配置渐变”;maven publish";直接从我的自定义插件插件,gradle,maven-publish,Gradle,Maven Publish,我是gradle的新手,想创建一个自定义的gradle插件,应用于maven publishplugin。另外,我的插件应该配置maven publish插件,以便其他插件用户不做任何事情。我的插件将自动配置maven publish。 我试图找到任何相同的教程,但没有找到。 如何从自定义插件配置maven publishgradle插件?从自定义插件配置其他插件非常常见。你应该能够引用任何自定义插件的例子。具体来说,对于maven publish,我创建了以下示例: import org.gr

我是gradle的新手,想创建一个自定义的gradle插件,应用于
maven publish
plugin。另外,我的插件应该配置
maven publish
插件,以便其他插件用户不做任何事情。我的插件将自动配置
maven publish
。 我试图找到任何相同的教程,但没有找到。
如何从自定义插件配置
maven publish
gradle插件?

从自定义插件配置其他插件非常常见。你应该能够引用任何自定义插件的例子。具体来说,对于
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"));
                });
            });
        });
    }

}
import org.gradle.api.Plugin;
导入org.gradle.api.Project;
导入org.gradle.api.publish.PublishingExtension;
导入org.gradle.api.publish.maven.maven出版物;
导入org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
导入java.net.URI;
公共类MyPlugin实现插件{
@凌驾
公开作废申请(项目){
project.getPluginManager().apply(MavenPublishPlugin.class);
project.getExtensions().configure(PublishingExtension.class,publishing->{
publishing.repositories(存储库->{
repositories.maven(maven->{
maven.setUrl(URI.create(“https://my-publishing-repo.com"));
});
});
出版。出版物(出版物->{
publications.create(“mavenJava”,MavenPublication.class,mavenJava->{
工件(project.getTasks().named(“bootJar”);
});
});
});
}
}
这相当于Gradle构建文件(Kotlin DSL)中的以下内容:

插件{
`马文出版社`
}
出版{
存储库{
马文{
url=uri(“https://my-publishing-repo.com")
}
}
出版物{
创建(“mavenJava”){
工件(tasks.named(“bootJar”).get())
}
}
}
请参阅我的指南中的以下指南:

  • --用于生成Gradle插件项目
plugins {
    `maven-publish`
}

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