Gradle sourceSets на основе gradle.settings

Я хотел бы, чтобы некоторые функции моей библиотеки Java были условно построены на основе пользовательских настроек, определенных в файле settings.gradle проекта.

Пример:

build.gradle

apply plugin: 'java'

sourceCompatibility = 1.7

repositories {
    mavenCentral()
}

sourceSets {
    extra_feature
}

dependencies {
    compile 'net.java.dev.jna:jna:4.1.0'
}

// I need a way to link the "extra_feature" sourceSets to the default "build" action based on some settings in settings.gradle.

settings.gradle

extraFeatures = true

1 ответ

Решение

Сначала переместите ваш параметр в gradle.properties

Во-вторых, используйте простой if управлять исходными наборами:

sourceSets (
   if ("true" == "$extraFeatures") {

   }
)

Пример (я не проверял это):

sourceSets {
    main {
        java {
            srcDir 'src/java'
            if ("true" == "$extraFeatures") {
                srcDir 'src/java/mysecretcode'
            }
        }
    }
}
Другие вопросы по тегам