我有一个要使用gradle构建的自定义存档类型,其结构与标准Java项目相同,因此我想使用它,但是我还有其他资源可以转到自定义位置,此外,我想要将压缩文件打包为zip而不是jar打包,我正在考虑创建Java gradle插件的子类,但是我不确定这是否可行。创建这个继承Java功能的新插件的合适方法是什么?

最佳答案

如果要创建一个自定义的Java插件,该插件具有与标准gradle插件不同的约定,则建议从Java-base插件开始。 java-base插件确实提供了sourceset的功能,但是还没有任何功能。

而不是继承插件,您应该在自定义插件中应用它:

class YourCustomJavaPlugin implements Plugin<Project> {
    void apply(Project project){
        // 1st apply the 'java-base' plugin
        project.apply(plugin:'java-base')

        // 2nd apply your own conventions on top
        project.sourceSets.create("customSourceSet")
        Zip myZip = project.tasks.create("zip", Zip)
        ...
    }
}

干杯,

雷内

10-08 08:24
查看更多