如何修复“在以下任何来源中都找不到插件”的问题

47

我在Intellij IDEA中创建了一个Spring MVC项目。当我构建我的项目时,显示以下消息,我该如何解决?

Plugin [id: 'org.springframework.boot', version: '2.1.7.RELEASE'] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (could not resolve plugin artifact 'org.springframework.boot:org.springframework.boot.gradle.plugin:2.1.7.RELEASE')
  Searched in the following repositories:
    Gradle Central Plugin Repository

Gradle中央插件仓库肯定有那个插件(在这里)。你确定你运行时有可用的互联网连接吗? - user31601
感谢您的回答,我的电脑在构建项目时仍然连接着互联网,但结果是一样的。 - steven nguyen
检查您是否需要代理才能访问互联网。否则,您的本地.m2配置文件中是否正确配置了settings.xml。您可能需要定义到Maven中央存储库... - vikingsteve
是的,我的代理被封锁了,我的IT已经为我打开了代理。谢谢。 - steven nguyen
12个回答

32

我在命令行上也遇到了这个问题,当我在setting.gradle文件的开头添加插件管理时,它就有所帮助:

pluginManagement {
    repositories {
        maven { url "https://plugins.gradle.org/m2/" }
        gradlePluginPortal()
    }
}

23
在我的情况下,问题是Gradle JVM版本不正确,需要在gradle设置中更改。将gradle JVM版本更改为项目的JVM版本后,此错误得以解决。 输入图片说明

20
在settings.gradle文件的开头添加此内容。
pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}

2

我检查了我的代理,它只能访问少数页面,所以出现了问题,在联系技术人员后,问题得到解决。


我也遇到了同样的问题。你告诉代理团队你要访问哪个URL?我也需要访问相同的URL。 - Jonathan M
感谢您提供有关代理的提示。在我们的组织中,我们使用与我的Windows密码相结合的cntlm。今天我已经更改了它,并相应地更新了我的.ini文件,但是我总是忘记在IntelliJ中更新我的代理密码。现在一切都正常了。 - Younes El Ouarti

1
您可能会缺少插件存储库,正如其他人所提到的那样。在企业环境中,如果自定义插件可以在构建文件中呈现,则需要以某种方式设置插件存储库URL、用户和密码。最简单的方法是通过一个文件~/.gradle/gradle.properties和添加该自定义存储库的片段来完成项目的settings.gradle

我发现规避的最简单方法是将Gradle用户名设置为当前工作目录,例如export GRADLE_USER_HOME=$PWD,以避免全局Gradle选项,前提是你知道自己在做什么。 - lcs

0
在我的情况下,Gradle 无法找到我的密钥库。如果您正在使用 Windows 子系统来进行 Linux,似乎 Gradle 可以看到 Windows 文件系统 (/mnt) 中的密钥库。此外,Gradle 似乎不能解析使用波浪线定义的主文件夹路径:
  • 这样做不起作用:〜/cacerts
  • 这样做有用:/home/me/cacerts

0
在我的情况下,我删除了 .gradle 目录和文件 > 无效缓存,然后问题得到解决。 我认为 gradle 插件、库版本不是问题所在。

0

我的java环境在wsl中是配置为使用公司环境的maven的。Gradle需要更多的访问权限,所以我需要发现、获取并导入外部证书到我的cacerts中。不幸的是,gradle没有返回清楚指出它是证书和访问问题的信息。它说它已经搜索了一组存储库并没有找到资源,而错误显示好像gradle可以访问存储库,但找不到资源,并非gradle无法访问存储库。

因此,我用Chrome浏览器访问了我的build.gradle中的各个存储库,并确定了我需要访问的存储库,并从gradle.org开始。我从浏览器中导出证书,然后使用以下命令将其导入我的cacerts:

sudo keytool -importcert -trustcacerts -cacerts -storepass changeit -file ~/gradle.org.crt -alias gradleplugins

导入该证书后,我确认没有gradle守护程序在运行,并再次尝试gradle clean命令。我迭代处理每个“PKIX path building failed:”错误,然后导出和导入每个证书,直到成功为止。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community
gradle.org.crt是什么?这是你从Chrome下载的一个吗?你的cacert在哪里?它是否在jdk安全文件夹下?你也在更新它吗? - atasoyh

0
  • 在我的情况下,Gradle与项目使用的JVM版本不匹配,如果Java版本不正确,它将无法找到正确的插件。
  • 解决方案:CMD +,然后检查JVM版本。
  • 也许可以将JDK路径作为环境变量放置,以防需要再次使用它,这将节省时间。

0
在同步之前,先执行gradle build./gradlew build来缓存所有的依赖项和插件,因为有些集成开发环境在这一步可能会出现错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接