Почему бы Gradle Jar не построить банку, которая делает GRALL построить? - PullRequest
0 голосов
/ 01 апреля 2019

В моем проекте Gradle я определяю дополнительный sourceSet.

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 Ответ

1 голос
/ 02 апреля 2019

Потому что jar - это просто задача, которая собирает основной файл jar.

build, с другой стороны, является задачей жизненного цикла верхнего уровня, которая зависит от assemble. И assemble задокументировано как

Зависит от: jar и всех других задач, которые создают артефакты, связанные с конфигурацией архивов.

Поскольку ваш sampleJar специально создает артефакт, присоединенный к конфигурации архивов, assemble, и, следовательно, build зависит от него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...