7

.projectさまざまな依存関係が定義されている少数のソースセットを含むgradleビルドスクリプト(一般的なものとそうでないものがあります)があり、Eclipseプラグインを使用してGradleにEclipse用のファイルとファイルを生成させようとしてい.classpathますが、できませんすべての依存関係エントリを に取得する方法を見つけます.classpath。何らかの理由で、外部依存関係のほとんどが に実際に追加され.classpathているため、Eclipse のビルドは 1400 エラーで失敗します (gradle でのビルドは正常に動作します)。

ソースセットを次のように定義しました。

sourceSets {
    setOne
    setTwo {
        compileClasspath += setOne.runtimeClasspath
    }
    test {
        compileClasspath += setOne.runtimeClasspath
        compileClasspath += setTwo.runtimeClasspath
    }
}

dependencies {
    setOne 'external:dependency:1.0'
    setTwo 'other:dependency:2.0'
}

私はmainソースセットを使用していないので、これが何か関係があるのではないかと思ったので、追加しました

sourceSets.each { ss ->
    sourceSets.main {
        compileClasspath += ss.runtimeClasspath
    }
}

しかし、それは役に立ちませんでした。

含まれているライブラリ、または含まれていないライブラリの共通のプロパティを理解することはできませんでしたが、確かなものは何も見つかりませんでした (もちろん何かがあるはずですが)。含まれているすべてのライブラリは、直接的または間接的にソースセットの依存関係であると感じていますがtest、すべての依存関係がそこにあることに注意する以上のことを確認できていませんtest

すべてのソースセットの依存関係が確実に に含まれるようにするにはどうすればよい.classpathですか?

4

3 に答える 3

2

私は Tomas Lycken に同意します。2 番目のオプションを使用することをお勧めしますが、小さな修正が必要になる場合があります。

eclipse.classpath.plusConfigurations = configurations.findAll { it.name.endsWith("Runtime") }

于 2014-07-29T12:04:59.683 に答える
1

これはGradle 2.2.1で私にとってうまくいったものです:

eclipse.classpath.plusConfigurations = [configurations.compile]
于 2014-12-13T17:21:16.523 に答える