2

我需要使用 Gradle 创建一个包含依赖项(FAT jar)的 jar。

问题:jar 只需要包含直接的 .groovy 文件……没有 .class 文件。

我从 Gradle 食谱中看到了这样做的方法:http: //docs.codehaus.org/display/GRADLE/Cookbook#Cookbook-Creatingafatjar

和 One-Jar 插件: https ://github.com/rholder/gradle-one-jar

但两种方法都涉及使用编译的 .class 文件而不是实际的源 .groovy 文件。另外,我不需要这个 jar 可以运行。我只需要能够引用我的 .groovy 脚本并为它们准备好依赖项。

这可能吗?

4

1 回答 1

3

我不确定您是否甚至需要 .jar 文件,或者 .zip 就足够了,因为在 .jar 中分发源代码会令人困惑。但无论您需要什么,Zip 任务都是您想要的:

task('fatJar', type: Zip) {
    extension = 'jar' // overriding default value: 'zip'
    classifier = 'fat' // alternatively you can set basename or appending

    from(sourceSets.main.allGroovy) // will fail if the groovy plugin isn't applied
    from(configurations.runtime) // this includes all your jars needed on runtime
}

现在这是一个非常简单的示例,它将在 build/distributions/ 中创建一个名为 [projectName]-[version]-fat.jar 的文件,其中所有 jar 都位于 zip 的根目录中,并且旁边有 groovy 源文件。您可能需要查看Gradle Zip 任务的文档以获取更多选项。

于 2014-03-17T18:55:17.740 回答