简体   繁体   English

下载 gradle 依赖项时出现 Java Spring Boot 项目错误

[英]Java Spring Boot project error on download gradle dependency

One of my coworkers recently deleted his ".gradle" directory.我的一位同事最近删除了他的“.gradle”目录。 He was not able to build the project again, because of the following error:由于以下错误,他无法再次构建项目:

Caused by: org.gradle.api.resources.ResourceException: Could not get resource 'https://repo.spring.io/plugins-release/com/github/node-gradle/gradle-node-plugin/2.2.1/gradle-node-plugin-2.2.1.pom'.
    at org.gradle.internal.resource.ResourceExceptions.failure(ResourceExceptions.java:74)
    at org.gradle.internal.resource.ResourceExceptions.getFailed(ResourceExceptions.java:57)
    at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.downloadByCoords(DefaultExternalResourceArtifactResolver.java:138)
    at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.downloadStaticResource(DefaultExternalResourceArtifactResolver.java:97)
    at org.gradle.api.internal.artifacts.repositories.resolver.DefaultExternalResourceArtifactResolver.resolveArtifact(DefaultExternalResourceArtifactResolver.java:64)
    at org.gradle.api.internal.artifacts.repositories.metadata.AbstractRepositoryMetadataSource.parseMetaDataFromArtifact(AbstractRepositoryMetadataSource.java:69)
    at org.gradle.api.internal.artifacts.repositories.metadata.AbstractRepositoryMetadataSource.create(AbstractRepositoryMetadataSource.java:59)
    at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.resolveStaticDependency(ExternalResourceResolver.java:244)
    at org.gradle.api.internal.artifacts.repositories.resolver.MavenResolver.doResolveComponentMetaData(MavenResolver.java:127)
    at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver$RemoteRepositoryAccess.resolveComponentMetaData(ExternalResourceResolver.java:445)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.CachingModuleComponentRepository$ResolveAndCacheRepositoryAccess.resolveComponentMetaData(CachingModuleComponentRepository.java:378)
    at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.ErrorHandlingModuleComponentRepository$ErrorHandlingModuleComponentRepositoryAccess.resolveComponentMetaData(ErrorHandlingModuleComponentRepository.java:138)

And I tried to access the URL 'https://repo.spring.io/plugins-release/com/github/node-gradle/gradle-node-plugin/2.2.1/gradle-node-plugin-2.2.1.pom' directly on browser, and it's now asking user and password.我尝试访问 URL 'https://repo.spring.io/plugins-release/com/github/node-gradle/gradle-node-plugin/2.2.1/gradle-node-plugin-2.2.1。 pom' 直接在浏览器上,它现在询问用户和密码。

Did somewone known what's happening?有人知道发生了什么吗? Did this repo was moved to another host?这个 repo 被转移到另一个主机了吗?

Thanks in advance.提前致谢。

edit: My gradle repositories:编辑:我的gradle存储库:

repositories {
        mavenLocal()
        mavenCentral()
        jcenter()
        maven { url "https://repo.spring.io/plugins-release" }
        maven { url "https://plugins.gradle.org/m2/" }
        
    }

Looks like you are downloading from a jfrog repository and are missing the gradle.properties file .. The .gradle folder contains a file called "gradle.properties" which contains the credentials (usually encrypted from the above repo in case of employer controlled repo)to access the jars/poms.看起来您正在从 jfrog 存储库下载并且缺少 gradle.properties 文件。.gradle 文件夹包含一个名为“gradle.properties”的文件,其中包含凭据(通常从上述存储库加密,以防雇主控制存储库)访问 jars/poms。

The steps to generate and download : 1.Go to https://repo.spring.io/ and login if you have workplace credentials for accessing the repo.生成和下载的步骤: 1.如果您有访问 repo 的工作场所凭据,请转到https://repo.spring.io/并登录。 2.search for "plugins-release" is the "set-me-up" scroller. 2.搜索“plugins-release”是“set-me-up”滚动条。 3. select Gradle in "tools" drop-down and Generate gradle.properties. 3. 在“工具”下拉菜单中选择 Gradle 并生成 gradle.properties。 4.download this "gradle.properties" and put it in .gradle folder under the username directory. 4.下载这个“gradle.properties”,放到username目录下的.gradle文件夹中。

switch the order of the last 2 lines under repositories .切换repositories下最后 2 行的顺序。 It becomes:它成为了:

repositories {
        mavenLocal()
        mavenCentral()
        jcenter()
        maven { url "https://plugins.gradle.org/m2/" }
        maven { url "https://repo.spring.io/plugins-release" }
    }

This way Gradle will resolve gradle-node-plugin from the official Gradle plugin portal ( https://plugins.gradle.org/m2/ ), instead of from Spring's Artifactory (which caches 3rd party artifacts, but you don't really want to fetch non Spring plugins from it).这样 Gradle 将从官方 Gradle 插件门户( https://plugins.gradle.org/m2/ )解析gradle-node-plugin ,而不是从 Spring 的 Artifactory(它缓存 3rd 方工件,但你并不真正想要从中获取非 Spring 插件)。

Also see this answer: https://stackoverflow.com/a/22170251/2591231另请参阅此答案: https : //stackoverflow.com/a/22170251/2591231

PS: PS:
I am assuming that in your build.gradle you apply the plugin "com.moowork.node" as shown here under "Using legacy plugin application", and that the repositories block is inside a buildscript block.我假设在你build.gradle应用插件"com.moowork.node"这里的“使用传统的插件应用程序”下,并且该repositories块是一个内部buildscript块。 Otherwise, your repositories block has no effect on plugin resolution.否则,您的repositories块对插件解析没有影响。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM