2016-10-27 6 views
0

IntelliJ 2016.2.5を使用すると、同じプロジェクト内のGradle依存関係を解決できないようです。次のようにIntelliJが同じプロジェクト内のモジュールから依存関係を解決するようにする

プロジェクト構造は以下の通りである:最初build.gradle

firstModule 
-> build.gradle // 1 
-> settings.gradle // 2 
secondModule 
-> build.gradle // 3 
-> settings.gradle // 4 

目次(1):

group 'de.test' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 
sourceCompatibility = 1.8 
repositories {mavenCentral()} 
dependencies {} 

そしてsettings.gradle(2):第二の

rootProject.name = 'test' 

コンテンツbuild.gradle(4)は、

group 'de.test' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 
sourceCompatibility = 1.8 
repositories {mavenCentral()} 

dependencies { 
    compile ('de.test:test:1.0-SNAPSHOT') 
} 

そして第二settings.gradle(4):

rootProject.name = 'testdep' 

両方のモジュールは、Gradleのプロジェクトとしてインポートされauto-import enabledに設定されています。

私はMavenプロジェクトから知っていますが、IntelliJとEclipseはプロジェクト/ワークスペース内のそれぞれのモジュールへの依存関係を解決します。しかし、Gradleでは依存関係を認識していないようです。モジュールが変更されるたびにtesttestdepが変更を受け入れる前に、明示的なgradleタスクcleanbuildを実行する必要があります。私がバージョンを変更しないと、このプロセスは信頼できません。これは、gradleキャッシングが原因である可能性が最も高いですが、にもかかわらず迷惑です。

コマンドライン引数--refresh-dependenciesを使用することは、私たちのプロジェクトのビルドタイムを上回るため、実際の解決策ではありません(上の例はデモ目的のみです)。また、私はでなく、で明示的にgradle呼び出しを使用する必要があります。

このような状況を処理する方法はありますか? Eclipseで動作しますか? これはIntelliJ 2016.3で修正される予定です(このリリースでは、グラデーションエリアの改善が見られました)。

答えて

2

Gradleの新しいComposite Builds機能を使用して、何をしようとしていますか。 Support for IntelliJ IDEAが近日公開予定です。

+0

これはほとんどの問題を解決しますが、1つの問題が残っています。たとえば、依存関係のバージョンを 'secondModule'の' firstModule'に変更すると、古いバージョンをテストするために、IntelliJはローカルモジュールをスキップせず、代わりにリポジトリから正しいものをダウンロードするように見えます。だから、全体的に、この解決策は私がMavenを使うときに慣れていたものとはまだまだ違います... –

関連する問題