Компилировать Gradle с двумя конфигурациями

У меня есть проект Gradle. Этот проект содержит много модулей. Я хотел бы сделать 2 разных исполняемых файла с активированным модулем или нет. У меня есть один исполняемый файл с module1 и module2, как следует:

dependencies {
    compile project(':module1')
    compile project(':module2')
}

Я хотел бы, чтобы исполняемый файл с module1 и module2, а другой только с module1.

Для генерации исполняемого файла я использовал launch4j и shadowjar.

Как я могу это сделать?

Спасибо

1 ответ

Вы могли бы использовать мой плагин java-flavors

plugins {
    id "com.lazan.javaflavours" version "1.2"
}
javaFlavours {
    flavour 'version1'
    flavour 'version2'
}
dependencies {
    compile 'some:common-dependency:1.0'
    version1Compile project(':module1')
    version2Compile project(':module2')
}

Каждый вариант (например, версия 1 и версия 2) будет иметь задачу jar, которая может использоваться последующими модулями / задачами. Вы также можете ссылаться sourceSets.version1.runtimeClasspath и т.п.

Примечание: плагин поддерживает специфические для java исходники и ресурсы. Не уверен, если вам нужна эта функция.

Другие вопросы по тегам