我将Gradle用于一个简单的Java项目,并希望生成一个包含源代码的胖JAR .
我在:https://github.com/szarnyasg/gradle-shadowjar-source准备了一个示例存储库 . 我试过这个 build.gradle
配置:
plugins { 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
我可以 Build 这个:
./gradlew clean build shadowjar
这会在 build/libs
目录中生成两个JAR文件:
-
example-fat.jar
- 没有来源的胖JAR -
example.jar
- 具有(仅)源的JAR
Gradle Shadow plug-in的文件说明了这一点
在存在java或groovy插件的情况下,Shadow将自动配置以下行为:[...]配置shadowJar任务以包含项目主sourceSet中的所有源 .
对我来说,这意味着源包含在生成的JAR中,但这可能不是它的含义 .
可以从Gradle生成可执行的胖JAR,它还包含源代码?
1 回答
我不是100%确定
shadowJar
如何处理源,但你可以推出自己的胖 jar 实现 .现在,在jar任务执行之后,我们准备好了可执行jar
为了完整性,这是我的
Hello.groovy
课程