2

私はgradleを使用してgroovy/javaアプリケーションを構築しています。これは、googleguice3.0に依存関係を追加するまでは正常に機能しました。Gradleはguicejarをコンパイルクラスパスに追加しません。少なくともそう思われます。次のようなエラーが発生します。

C:\dev\workspaces\initial>gradle -q compileJava
C:\dev\workspaces\initial\src\main\java\com\comp\test\solmon\di\GuiceDI.java:3: package com.google.inject does not exist
import com.google.inject.Guice;
                    ^
C:\dev\workspaces\initial\src\main\java\com\comp\test\solmon\di\GuiceDI.java:4: package com.google.inject does not exist
import com.google.inject.Injector;

build.gradleファイルには、次の依存関係があります。

dependencies{
    runtime 'com.beust:jcommander:1.27'
    runtime "org.slf4j:slf4j-api:1.7.1"
    runtime "ch.qos.logback:logback-classic:1.0.7"
    runtime 'com.google.inject:guice:3.0'
    testRuntime 'junit:junit:4+'
}

私はSpringsourceToolSuite 2.9.2でgradleプラグインを使用してアプリケーションを開発しており、gradles依存関係管理を使用してすべての依存関係を取得しています。Stsはなんとかコードをうまくコンパイルでき、失敗するのはgradleだけです。「--debug」パラメーターを使用してgradleコンパイルを実行しようとしましたが、どのクラスパスgradleがコンパイラーに提供するかがわかりません。

アプリケーションをコンパイルするためにgradleを取得する方法について何かアイデアはありますか?

4

1 に答える 1

3

実行時の依存関係にGuiceを追加しました(つまり、アプリケーションを実行するために必要な依存関係ですが、コンパイルするためには必要ありません)。コンパイルの依存関係に追加します。

dependencies {
    ...
    compile 'com.google.inject:guice:3.0'
}

コンパイルの依存関係は、明らかに実行時の依存関係でもあります。

于 2012-09-27T11:20:53.270 に答える