Теперь у нас есть структура проекта с папкой с одним исходным кодом с именем 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. так как сейчас мы не можем изменить структуру каталогов исходного кода проекта.