为什么Gradle的java编译类路径不包含指定的依赖项

时间:2012-09-27 08:39:49

标签: java gradle

我正在使用gradle构建一个groovy / java应用程序。 这工作正常,直到我添加了谷歌guice 3.0的依赖。 Gradle不会将guice jar添加到编译类路径中,至少看起来如此。 我得到这样的错误:

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+'
}

我正在使用其gradle插件在Springsource Tool Suite 2.9.2中开发应用程序,它使用gradles依赖关系管理来获取所有依赖项。 Sts设法编译代码很好,它只是gradle失败。 我试图使用“--debug”参数运行gradle编译,但是我无法看到哪个classpath gradle给编译器。

如何让gradle编译我的应用程序?

1 个答案:

答案 0 :(得分:3)

您已将Guice添加到运行时依赖项(即运行应用程序所需的依赖项,但不是编译它)。将它添加到编译依赖项:

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

显然,编译依赖项也是运行时依赖项。