2017-10-31 4 views
1

でテスト依存性を排除するためにどのように、私はこのようなプロジェクトいる:最初のGradle

project-b 
    src 
     main 
      java 
       B.java 
     test 
      java 
       BTest.java 

build.gradleの設定、プロジェクト - :それから、私はこのような別のプロジェクトを

project-a 
    src 
     main 
      java 
       A.java 
     test 
      java 
       ATest.java 

を持っていますb依存プロジェクト-a

dependencies{ 
    compile project(":project-a") 
} 

質問はBTest.javaがATest.javaにアクセスできますか?これを避ける方法は?

------------------- enter image description here

settings.gradle ---------------詳細を表示

rootProject.name = 'test-dependence' 

include 'project-a', 'project-b' 

プロジェクト-B/build.gradle

dependencies { 
    compile project(":project-a") 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
} 
+0

私は多分そう、 'BTest.java'がアクセスすることはできません、私のテストで依存 – xiayouxue

+1

を望んでいない、プロジェクト、そして紛争にBTest.javaを書く' ATest.java '典型的なプロジェクトの依存関係を持っています。あなたはこれを見ていると確信していますか?もしそうなら、あなたのGradleファイルについてもっと分かち合うことができますか? –

+0

@MichaelEasterデモの詳細を追加しました – xiayouxue

答えて

1

のGradleは、モジュール内の複数のクラスパス(コンフィギュレーション)を可能にし、IntelliJのHAため残念なことにのGradleモジュールとIntelliJのモジュール間のインピーダンスの不一致のビットがありますモジュールごとに1つのクラスパス。

IntelliJはBTest.javaがATest.javaにアクセスすることを基本的に許可しますが、コマンドラインからビルドした場合、Gradleはそれを許可しません。

intellij Gradle Settingsで以下を試してください。

Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle: check create separate modules per source set 

関連質問here

関連する問題