2016-07-04 12 views
0

大きな(ish)プロジェクトのビルドプロセスを再構築/リファクタリングしています。現在、スタンドアローンのビルドスクリプトを使用して構築された12個以上のモジュールが含まれています。私はそれらをすべてGradleの単一のマルチプロジェクトビルドに統合したいと思っています。マルチプロジェクトビルド:テストjarへの依存性

すべてのソースを1つのツリーに統合した後、build.gradleを固定したところ、次の問題が発生しました。多くのモジュールの依存関係には次のようなものが含まれています:

dependencies { 
    compile group: 'com.company', name: 'Module', version: '1.2.3' 
    // ... 
    testCompile group: 'com.company', name: 'Module', version: '1.2.3', classifier: 'tests' 
} 

ビルドにはリポジトリからではなくサブプロジェクトからのjarを使用します。私はcompile ...compile project(':Module')と置き換えても問題ありません。しかし、私は 'tests'指定子をtestCompile project...の依存関係に渡す方法を見つけることができません。

tests jarをtestCompileへの依存としてピックアップする方法はありますか?

+0

待って...あなたは、プロジェクトBにテストコードに依存して、プロジェクトAにテストコードをお持ちですか?それは少し珍しいように聞こえる。単体テストについて話していると仮定すると、通常は非常に局所的です。 – Jolta

+0

まあ...はい。私は本当に申し訳ない状態でプロジェクトを継承しました。プロジェクトBには、プロジェクトAの単体テストが依存するテストユーティリティがあります。 – Tomo

答えて

1

「テスト」JARを発信アーティファクトとして宣言する必要があります。あなたがそのように依存かかるプロジェクトで

configurations { 
    testUtils 
} 

task testUtilsJar(type: Jar) { 
    ... 
} 

artifacts { 
    testUtils testUtilsJar 
} 

dependencies { 
    testCompile project(path: ':Module', configuration: 'testUtils') 
} 
関連する問題