2016-07-22 8 views
4

私は基本的に依存関係providedを模倣する方法を探しています。私は別のjar(dbドライバ)に依存するjar(dbドライバの拡張機能)をビルドしていますが、そのjarファイルは含めたくありません。コンパイル時のみのテストとテストのための依存関係

これを実現するにはcompileOnlyを使用できますが、必要なjarがテストに含まれていないため、テストは実行されずコンパイルされません。

testCompileのような利用可能な依存関係のリストを試しましたが、コンパイル時とテストの実行時およびコンパイル時にjarを利用できるようにすることができませんでした。

どうすればその瓶を適切に含めることができますか?

編集:要求されたとして、build.gradleファイル

group 'com.mygroup' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 

sourceCompatibility = 1.8 

repositories { 
    mavenCentral() 
} 

dependencies { 
    testCompile group: 'junit', name: 'junit', version: '4.11' 
    compileOnly "org.mongodb:mongodb-driver:3.3.0" 
    testCompile "org.mongodb:mongodb-driver:3.3.0" 
} 

二度依存性をリストに作業を行い、しかし、明らかに非常に素晴らしいソリューション

+0

あなたは 'compileOnly'と' testCompile'両方として依存関係をリストアップしましたか?また、 'build.gradle'ファイル – JBirdVegas

+0

を表示して、依存関係が2回働いているようですが、かなり醜い回避策のようです。私は 'build.gradle'ファイルを質問に追加しました。 –

答えて

1

ではありませんあなたはからあなたtestCompileの構成を拡張することができますcompileOnly設定:

configurations { 
    testCompile.extendsFrom compileOnly 
} 
0

私は以下を使用します。 tynnからの回答より長い行があるが、意図明確私見になり

sourceSets { 
    // Make the compileOnly dependencies available when compiling/running tests 
    test.compileClasspath += configurations.compileOnly 
    test.runtimeClasspath += configurations.compileOnly 
} 

は、

+0

私の場合のように、10個の 'compileOnly'の依存関係があれば、それ以上のことはありません。残念ながら、これは私のために働くようには見えません。 – bj0

関連する問題