【发布时间】:2012-11-26 17:57:54
【问题描述】:
Gradle 可以将多个项目打包到一个 jar 中吗?
我知道您可以使用以下方法为单个项目执行此操作:
task packageTests(type: Jar) {
from sourceSets.test.classes
}
但是一个人如何将多个子项目压缩到一个 jar 中呢?
我试过了,还是不行:
task packageTests(type: Jar) {
from project(':core').sourceSets.main.classes
from project(':core:google').sourceSets.test.classes
from project(':core:bing').sourceSets.test.classes
}
【问题讨论】:
-
您可以使用fatJar、OneJar 或application zip。
-
所有这 3 个都是 1 个特定于项目的。它们都不会压缩根项目及其所有子项目。
-
所有这些都基于项目应用的模型以其他模型为依赖项。
-
OneJar 显然是一个压缩单个项目并在 .jar 中包含所有依赖项的项目。它并没有为我解决这个特殊问题。 “应用程序 zip”不起作用,因为 GitHub 已经为我做到了。我尝试了 fatJar,但指令不起作用,Gradle 无法编译我的脚本。
-
Gist 将 fatJar 应用到您的项目所需的更改。只需运行
gradle fatJar。