2
我使用Gradle作爲簡單的Java項目,並且希望生成一個包含源代碼的單個胖JAR。在胖JAR中包含源碼
我準備了一個示例存儲庫:https://github.com/szarnyasg/gradle-shadowjar-source。我想這build.gradle
配置:
./gradlew clean build shadowjar
這導致兩個JAR文件中build/libs
目錄:
example-fat.jar
- 無來源脂肪JARplugins { id "com.github.johnrengelman.shadow" version "1.2.4" } apply plugin: 'java' shadowJar { classifier = 'fat' manifest { attributes 'Main-Class': 'org.example.MyMain' } } task packageSources(type: Jar) { from sourceSets.main.allSource } artifacts.archives packageSources
我可以建立這個(僅限於)
的Gradle Shadow plug-in的文檔指出
在
java
或groovy
插件的存在,暗影將 自動配置以下行爲:[...]
- 配置
shadowJar
任務以包含來自的所有來源項目的主要源碼集。
對於我來說,這意味着源包括在生成的JAR,但是這可能不是這個意思。
可以從Gradle生成一個可執行的胖JAR,它也包含源代碼?
感謝您的回答。我刪除了Groovy相關的部分,並在'gradle clean fatJar'的存儲庫上嘗試了它,但生成的'example-fat-0.1.jar'不包含任何源代碼。我將最新版本推送到https://github.com/szarnyasg/gradle-shadowjar-source –