使用Gradle创建FAT源仅jar

时间:2013-05-13 16:00:33

标签: groovy jar gradle fat

我需要使用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文件。另外,我不需要这个罐子可以运行。我只需要能够引用我的.groovy脚本并且已经存在依赖关系。

这可能吗?

1 个答案:

答案 0 :(得分: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的文件,其中包含zip根目录中的所有jar文件和它们旁边的groovy源文件。您可能需要查看Gradle Zip task的文档以获取更多选项。