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 –