2013-05-13 183 views
2

我需要使用Gradle创建一个包含依赖项(FAT罐子)的jar。使用Gradle创建一个FAT仅限源代码的罐子

该catch:该jar只需要包括直的.groovy文件...没有.class文件。

我见过从摇篮食谱做的方式:http://docs.codehaus.org/display/GRADLE/Cookbook#Cookbook-Creatingafatjar

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

,但使用已编译的.class文件,而不是实际的参与左右逢源源.groovy文件。另外,我不需要这个jar可以运行。我只需要能够引用我的.groovy脚本,并且它们的依赖关系已经存在。

这可能吗?

回答

2

我不确定你是否需要一个.jar文件,或者.zip就足够了,因为在.jar中分发源代码会令人困惑。但是,独立的你需要什么,在邮编任务是你想要什么:

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 
} 

现在,这是一个非常简单的例子,这将创建一个名为[项目]文件 - [版本]构建/分布内-fat.jar /所有的jar文件都放在zip文件的根目录以及它们旁边的groovy源文件中。您可能需要查看Gradle Zip task的文档以获取更多选项。