我目前有一个Java项目,其中(简化)如下所示: (它们不是这样命名的,它只是一个例子)
core (project 1)
core.java
utils:
util.java
anotherutil.java
modules (project 2)
a
amodule.java
b
bmodule.java
c
cmodule.java
...
z
zmodule.java
我制作了一个构建核心项目的build.gradle,工作正常。
我的问题:有没有办法为所有26个不同的“模块”制作26个不同的jar,而不创建26个不同的构建脚本?
构建程序时,我不想每次都运行26个不同的构建脚本。我很喜欢运行2个scrips,一个用于核心,另一个用于模块。这些模块都依赖于核心和核心软转换(在不需要它的情况下依赖它,但在它存在时具有一些额外的功能)。
所有模块都应该有自己的jar,如下所示:
a.jar:
a (package)
amodule.java
b.jar:
b (package)
bmodule.java
etc...
答案 0 :(得分:1)
Gradle本身支持自定义多项目构建,这是理想的方式。
由单独的Jar表示的所有模块应该作为项目分开。
但是,如果您仍希望在某些项目中使用内容/源文件提取不同的组件/模块,那么就有可能!
通过微小的调整,您可以创建一个自定义任务,创建满足您所有条件的Jar存档。
PS:根本不建议创建项目的逻辑模块。请改用子项目并使用Gradle Multi-Project构建
进行配置实现此目标的最简单方法之一是创建自定义任务
对于模块A
task aJar(type: Jar) {
from(sourceSets.main.output) {
include "a/**"
}
}
对于模块B
task bJar(type: Jar) {
from(sourceSets.main.output) {
include "b/**"
}
}
等等。
现在指定对任务的依赖
jar.dependsOn(aJar,bJar)
他们最终你可以执行gradle jar
来获得所有必需的罐子