jar的Gradle自定义任务

时间:2015-06-24 16:03:53

标签: java groovy gradle

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

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

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

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文件,该文件不包含已编译的文件,只包含依赖项。

谢谢!

1 个答案:

答案 0 :(得分:6)

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