Gradle jar 的自定义任务

Gradle custom task for jar

我正在为我的 Java 项目使用 Gradle,我想知道是否可以防止 gradle build 每次执行时都创建一个 jar 文件。

此外,是否可以在特定位置创建具有依赖项的 Jar 的自定义任务 build/myAppJar/

这是我目前的自定义任务:

task toJar (type: Jar) {
    from configurations.compile.collect { zipTree it }
    manifest {
        attributes 'Implementation-Title': 'myApp',
                'Implementation-Version': 1.0,
                'Main-Class': mainClassName
    }
}

以上代码将在build/libs下创建jar文件,该文件不包含编译后的文件,只包含依赖项。

谢谢!

build 任务来自 java 插件。您可以控制何时构建 jar,如下所示:

jar {
  onlyIf { condition }
}

您可以将 jar 设置为在声明其他内容为 true 时构建,或者将其硬设置为 false 以从不构建 jar。

您可以在 toJar 自定义任务中包含源集,以将编译后的文件包含到您的 jar 中。

task toJar (type: Jar) {
    from sourceSets.all
}

您明确要求将所有编译时依赖项包含在此处的 jar 中:from configurations.compile.collect

参考:Gradle java plugin