Gradle:从外部编译的类生成jar

时间:2018-10-02 20:46:52

标签: java gradle

我正在尝试从手动编译类的文件夹中生成jar

这是我完成的任务

task toJar (type: Jar) {
    from file('/path/to/classes/dir')
    destinationDir file('/path/to/jars/dir')
    with jar
}

但是那个任务什么都不会产生。 我看到了可能带有configurations.compile.collect的示例,但就我而言,该目录是由外部工具编译的。

gradle如何从外部编译的类生成jar

1 个答案:

答案 0 :(得分:0)

您的任务应该可以正常运行,但是您实际上并不需要with jar

下面是一个有效的示例,假设带有外部编译类的目录为$rootDir/externalClasses

task toJar(type: Jar) {
    from file("$rootDir/externalClasses")
    destinationDir project.buildDir
    // print each included file for debug purpose
    eachFile { print "included file: $it" }
}

输出:

> Task :toJar
included file: file 'C:\tmp\gradle-projects\TestGradle\externalClasses\org\mycompany\gradle\MaiApp.class'
BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

然后在$buildDir/中正确创建结果Jar文件

您可以尝试删除“ with jar”行,并在代码中添加eachFile调试闭包吗?输出是什么?