26

春のブート プロジェクト ビルドで単純なシナリオを実現しようとしています。依存関係を含めたり除外したり、環境に応じて war または jar をパッケージ化したりします。

たとえば、環境devには devtools とパッケージ jar、prodパッケージ war などを含めます。

XML ベースの構成ではないことはわかっています。基本的には、build.gradle に if ステートメントを記述できますが、これを達成するための推奨される方法はありますか?

複数のビルド ファイルを作成する代わりに、いくつかの一般的な依存関係を宣言し、それらを 1 つのファイルで参照できますか?

ビルド ターゲット環境に基づいてビルド構成を変更するベスト プラクティスはありますか?

4

3 に答える 3

28
ext {
    devDependencies = ['org.foo:dep1:1.0', 'org.foo:dep2:1.0']
    prodDependencies = ['org.foo:dep3:1.0', 'org.foo:dep4:1.0']
    isProd = System.properties['env'] == 'prod'
    isDev = System.properties['env'] == 'dev'
}

apply plugin: 'java'

dependencies {
    compile 'org.foo:common:1.0'
    if (isProd) {
       compile prodDependencies
    }
    if (isDev) {
       compile devDependencies
    }
}

if (isDev) tasks.withType(War).all { it.enabled = false }
于 2016-11-17T16:27:45.367 に答える