Gradle从单个源文件夹生成多个JAR文件
Gradle从单个源文件夹生成多个JAR文件
目前,我们有一个项目结构,只有一个名为src
的源代码文件夹,其中包含了三个模块的源代码。我想要做的是:
1)编译源代码。可以通过定义sourceSets来轻松完成:
sourceSets { main { java { srcDir 'src' } } }
2)将编译结果放入三个jar文件中。我正在通过三个“jar”类型的任务来完成:
目前,我正在通过三个单独的任务来完成:
- util.jar
task utilJar(type: Jar) { from(sourceSets.main.output) { include "my/util/package/**" } }
- client.jar
task clientJar(type: Jar) { from(sourceSets.main.output) { include "my/client/package/**" } }
- server.jar
task serverJar(type: Jar) { from(sourceSets.main.output) { include "**" } excludes.addAll(utilJar.includes) excludes.addAll(clientJar.includes) }
问题在于server.jar
应该包含所有不包含在client.jar
和util.jar
中的类。在ant构建脚本中,我们通过使用difference
ant任务来解决这个问题。在gradle中如何实现这一点(我目前的方法不起作用)?
也许我的方法完全错误。请给予建议。
P.S. 目前我们不能更改项目源代码文件夹的结构。