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

标签 java gradle

我正在使用 gradle 构建 groovy/java 应用程序。 这工作得很好,直到我添加了对 google 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+'
}

我正在 Springsource Tool Suite 2.9.2 中使用其 gradle 插件开发应用程序,它使用 gradles 依赖项管理来获取所有依赖项。 Sts 成功地编译了代码,只是 gradle 失败了。 我尝试使用“--debug”参数运行 gradle 编译,但我看不到 gradle 为编译器提供了哪个类路径。

有什么想法如何让 gradle 编译我的应用程序吗?

最佳答案

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

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

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

关于java - 为什么Gradle的java编译类路径不包含指定的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617327/

相关文章:

java - 我得到空字段 Unmarshalling a xml with spring-oxm

java - APK reference.conf 中复制的重复文件

Android Studio - 无法解决依赖关系

java - 如何跳过循环中的打印语句

java - 无法使用 Log4j2 在控制台中记录消息,但它们已记录在文件中

java - 在 list 中指定 -javaagent 选项

java - Maven:不正确(且不稳定)的传递依赖版本

android - Gradle 未在线搜索依赖项

android - 使用 cmake for Android 时将共享对象复制到 jniLibs

java - 用于运行/停止程序的 for 循环