Теперь у нас есть структура проекта с папкой с одним исходным кодом с именем src
, которая содержит исходный код для трех модулей. Я хочу сделать это:
1) Скомпилируйте исходный код. Это легко сделать с помощью определения sourceSets:
sourceSets {
main {
java {
srcDir 'src'
}
}
}
2) Поместите результаты компиляции в три баночки. Я делаю это с помощью трех задач типа "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 build script мы решим эту проблему, используя задачу difference
ant. Как это можно сделать в gradle (мой текущий подход не работает)?
Возможно, мой подход совершенно неправильный. Пожалуйста, совет.
P.S. так как сейчас мы не можем изменить структуру каталогов исходного кода проекта.