首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradle找不到番石榴-*版本*-cdi1.0.jar

Gradle找不到番石榴-*版本*-cdi1.0.jar
EN

Stack Overflow用户
提问于 2021-01-26 21:24:25
回答 1查看 1.2K关注 0票数 3

可能是显而易见的,但这个问题让我陷入了一段时间。

有些库需要com.google.guava:guava:21.0作为依赖项,但是gradle 无法从maven存储库中获取它。这是一个遗留项目,所以版本不是最新的。

错误日志:

代码语言:javascript
复制
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not find guava-21.0-cdi1.0.jar (com.google.guava:guava:21.0).
     Searched in the following locations:
         https://repo.maven.apache.org/maven2/com/google/guava/guava/21.0/guava-21.0-cdi1.0.jar

guava-21.0.jar (没有-cdi1.0后缀)存在于该路径上。为什么gradle会在文件名中添加-cdi1.0后缀,并且是否可以禁用此功能?或者我只是误解了什么,还有别的什么在起作用?

我试图单独指定guava dep,但是它不影响任何事情。

build.gradle: (由gradle init从maven pom.xml生成)

代码语言:javascript
复制
plugins {
    id 'java'
    id 'maven-publish'
}

repositories {
    mavenCentral()
    maven {
        url = 'http://repo.maven.apache.org/maven2'
    }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web:1.4.1.RELEASE'
    implementation 'org.springframework.boot:spring-boot-starter-jdbc:1.4.1.RELEASE'
    implementation 'org.springframework.boot:spring-boot-starter-actuator:1.4.1.RELEASE'
    ... etc other deps
}

group = 'com.springapp'
version = '1.0-SNAPSHOT'
description = 'someproj'
java.sourceCompatibility = JavaVersion.VERSION_1_8

publishing {
    publications {
        maven(MavenPublication) {
            from(components.java)
        }
    }
}

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}

来自gradle --debug build

代码语言:javascript
复制
2021-01-31T10:59:27.736-0300 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver] Attempting to resolve component for com.google.guava:guava:30.1-jre using repositories [MavenRepo, maven]
2021-01-31T10:59:27.736-0300 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Using cached module metadata for module 'com.google.guava:guava:30.1-jre' in 'MavenRepo'
2021-01-31T10:59:27.737-0300 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainComponentMetaDataResolver] Using com.google.guava:guava:30.1-jre from Maven repository 'MavenRepo'
2021-01-31T10:59:27.737-0300 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate com.google.guava:guava:30.1-jre configuration compile doesn't have attribute org.gradle.dependency.bundling
2021-01-31T10:59:27.737-0300 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate com.google.guava:guava:30.1-jre configuration compile doesn't have attribute org.gradle.jvm.version
2021-01-31T10:59:27.737-0300 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate com.google.guava:guava:30.1-jre configuration runtime doesn't have attribute org.gradle.dependency.bundling
2021-01-31T10:59:27.737-0300 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate com.google.guava:guava:30.1-jre configuration runtime doesn't have attribute org.gradle.jvm.version
2021-01-31T10:59:27.738-0300 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate com.google.guava:guava:30.1-jre configuration platform-compile attribute org.gradle.category value {org.gradle.category=platform, org.gradle.status=release, org.gradle.usage=java-api} doesn't requested value library
2021-01-31T10:59:27.738-0300 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate com.google.guava:guava:30.1-jre configuration platform-runtime attribute org.gradle.category value {org.gradle.category=platform, org.gradle.status=release, org.gradle.usage=java-runtime} doesn't requested value library
2021-01-31T10:59:27.738-0300 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate com.google.guava:guava:30.1-jre configuration enforced-platform-compile attribute org.gradle.category value {org.gradle.category=enforced-platform, org.gradle.status=release, org.gradle.usage=java-api} doesn't requested value library
2021-01-31T10:59:27.738-0300 [DEBUG] [org.gradle.internal.component.model.LoggingAttributeMatchingExplanationBuilder] Candidate com.google.guava:guava:30.1-jre configuration enforced-platform-runtime attribute org.gradle.category value {org.gradle.category=enforced-platform, org.gradle.status=release, org.gradle.usage=java-runtime} doesn't requested value library
2021-01-31T10:59:27.738-0300 [DEBUG] [org.gradle.internal.component.model.ComponentAttributeMatcher] Selected matches [com.google.guava:guava:30.1-jre configuration compile] from candidates [com.google.guava:guava:30.1-jre configuration compile, com.google.guava:guava:30.1-jre configuration runtime, com.google.guava:guava:30.1-jre configuration platform-compile, com.google.guava:guava:30.1-jre configuration platform-runtime, com.google.guava:guava:30.1-jre configuration enforced-platform-compile, com.google.guava:guava:30.1-jre configuration enforced-platform-runtime] for {org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.version=8, org.gradle.libraryelements=classes, org.gradle.usage=java-api}

然后以后:

代码语言:javascript
复制
2021-01-31T10:59:27.938-0300 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Found artifact 'guava-30.1-jre.jar (com.google.guava:guava:30.1-jre)' in resolver cache: /Users/hopa/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/30.1-jre/d0c3ce2311c9e36e73228da25a6e99b2ab826f/guava-30.1-jre.jar
2021-01-31T10:59:27.940-0300 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository] Detected non-existence of artifact 'guava-30.1-jre-cdi1.0.jar (com.google.guava:guava:30.1-jre)' in resolver cache

这是调试日志Detected non-existence of artifact 'guava-30.1-jre-cdi1.0.jar (com.google.guava:guava:30.1-jre)' in resolver cache中提到cdi分类器的唯一一次,但生成失败消息除外。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-29 04:57:19

cdi-1.0后缀是一个分类器,通常出现在pom中,如:<classifier>cdi1.0</classifier>。据我所见,它实际上只在番石榴15,所以我会检查各地,试图找到罪犯。有些事情需要尝试:

  • 检查传递依赖项。使用gradle dependencies查找试图引入com.google.guava:guava:21.0和不正确分类器的内容。也许其中之一做得不对,你可以尝试改变版本或者强迫做一些不同的事情。希望强迫不会导致too much trouble with the classifier。如果时间允许,您可以尝试在您的IDE中找到可能是mismatched.
  • Restart /失效缓存的依赖项,以及清除Gradle缓存.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65909484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档