【问题标题】:could not resolve com.google.guava from gradle无法从 gradle 解析 com.google.guava
【发布时间】:2020-05-13 16:13:10
【问题描述】:

来自 Netbeans 的奇怪警告:

虽然我没有从 gradle 本身看到任何东西,至少到目前为止:

thufir@dur:~/NetBeansProjects/expectit$ 
thufir@dur:~/NetBeansProjects/expectit$ gradle clean

BUILD SUCCESSFUL in 748ms
1 actionable task: 1 up-to-date
thufir@dur:~/NetBeansProjects/expectit$ 
thufir@dur:~/NetBeansProjects/expectit$ tree
.
├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── LICENSE
├── README.md
├── settings.gradle
└── src
    ├── main
    │   ├── java
    │   │   └── expectit
    │   │       └── App.java
    │   └── resources
    └── test
        ├── java
        │   └── expectit
        │       └── AppTest.java
        └── resources

11 directories, 10 files
thufir@dur:~/NetBeansProjects/expectit$ 

我只在一个基本上是空的目录上运行git init,所以这更像是一种好奇心。

但是我如何至少从 gradle 本身生成这个警告(这可能是 IDE 正在做的事情)?

我按照说明添加了guava,这样其他樱桃build file 是:

/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * User Manual available at https://docs.gradle.org/6.3/userguide/tutorial_java_projects.html
 */

plugins {
    // Apply the java plugin to add support for Java
    id 'java'

    // Apply the application plugin to add support for building a CLI application.
    id 'application'
}

repositories {
    // Use jcenter for resolving dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
    mavenCentral()
}

dependencies {
    // This dependency is used by the application.
    implementation 'com.google.guava:guava:28.2-jre'

    // Use TestNG framework, also requires calling test.useTestNG() below
    testImplementation 'org.testng:testng:7.0.0'
}

application {
    // Define the main class for the application.
    mainClassName = 'expectit.App'
}

test {
    // Use TestNG for unit tests
    useTestNG()
}

我只added maven central 同上;仍然会从 IDE 收到相同的警告。

gradle 版本:

thufir@dur:~/NetBeansProjects/expectit$ 
thufir@dur:~/NetBeansProjects/expectit$ gradle -v

------------------------------------------------------------
Gradle 6.3
------------------------------------------------------------

Build time:   2020-03-24 19:52:07 UTC
Revision:     bacd40b727b0130eeac8855ae3f9fd9a0b207c60

Kotlin:       1.3.70
Groovy:       2.5.10
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          11.0.7 (AdoptOpenJDK 11.0.7+10)
OS:           Linux 5.4.0-29-generic amd64

thufir@dur:~/NetBeansProjects/expectit$ 

gradlew 版本:

thufir@dur:~/NetBeansProjects/expectit$ 
thufir@dur:~/NetBeansProjects/expectit$ ./gradlew --version
Downloading https://services.gradle.org/distributions/gradle-6.3-bin.zip
.........10%..........20%..........30%.........40%..........50%..........60%.........70%..........80%..........90%..........100%

------------------------------------------------------------
Gradle 6.3
------------------------------------------------------------

Build time:   2020-03-24 19:52:07 UTC
Revision:     bacd40b727b0130eeac8855ae3f9fd9a0b207c60

Kotlin:       1.3.70
Groovy:       2.5.10
Ant:          Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM:          11.0.7 (AdoptOpenJDK 11.0.7+10)
OS:           Linux 5.4.0-29-generic amd64

thufir@dur:~/NetBeansProjects/expectit$ 

【问题讨论】:

  • 依赖关系似乎是正确的......如果您从终端手动构建它而不是使用 NetBeans 会怎样?您打印了已安装 gradle 的版本,而不是项目中的包装器。该包装器的版本是什么?
  • 不确定如何查看包装器版本,但是:scans.gradle.com/s/rthftfzjmmrik
  • 只需像使用已安装的 gradle 一样使用包装二进制文件 (./gradlew)。看起来它成功完成了。这意味着 Netbeans 是问题所在。 Netbeans 现在显示什么?
  • plugins.netbeans.org/plugin/44510/gradle-support Netbeans 的 gradle 插件不支持 gradle 6,这可能是问题所在。
  • @tomtzook 说得通。谢谢。

标签: java gradle netbeans package guava


【解决方案1】:

假设您的包装器版本与您安装的版本相同。问题源于 Netbeans 不支持 Gradle 6(请参阅 gradle plugin for netbeans)。

最好的选择就是切换到 Gradle 5(受支持)。为此,您需要从gradle/wrapper/gradle-wrapper.properties 更新包装器属性。 修改distributionUrl 的值,并将结尾从gradle-6.x-bin.zip 更改为其他版本,例如gradle-5.2.1-bin.zip

然后再次运行构建,以便下载包装器并再次尝试 NetBeans。

据我所知build.gradle 应该也可以在版本 5 中使用,因此无需修改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 2022-10-31
    相关资源
    最近更新 更多