#gradle
#gradle
Вопрос:
В моем проекте Gradle я определяю дополнительный набор исходных текстов.
sourceSets {
sample {
java {
srcDir 'sample/java'
}
compileClasspath = sourceSets.main.output sourceSets.main.compileClasspath
}
}
Затем я добавляю задачу:
task sampleJar(type: Jar) {
classifier 'sample'
from sourceSets.sample.output
}
artifacts {
archives sampleJar
}
Если я это сделаю > gradle build
, дополнительный файл jar будет собран из дополнительного набора исходных текстов. Однако, если я это сделаю > gradle jar
, это не сработает. есть причина, почему?
Когда я просматриваю выходные сообщения, я вижу:
gradle build
имеет sampleJar
в задачах, которые необходимо выполнить:
но
gradle jar
не создает.
Но не уверен, почему?
Ответ №1:
Потому что jar
это просто задача, которая собирает основной файл jar.
build
с другой стороны, это задача жизненного цикла верхнего уровня, которая зависит от assemble
. И assemble
документируется как
Зависит от: jar и всех других задач, которые создают артефакты, прикрепленные к конфигурации архивов.
Поскольку ваша sampleJar
особенность создает артефакт, прикрепленный к конфигурации архивов, assemble
и, следовательно, build
зависит от него.