2013-05-13 184 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的文檔以獲取更多選項。