无法解析配置':profile'的所有依赖项

时间:2016-11-11 23:22:27

标签: grails gradle grails3

我正在尝试从Grails 3.1.5升级到3.2.2。

当我运行grails --debug --stacktrace run-app时,我得到以下输出:

$ grails --debug --stacktrace run-app
|Resolving Dependencies. Please wait...

CONFIGURE SUCCESSFUL

Total time: 5.028 secs
Error |
Could not resolve all dependencies for configuration ':profile'. Type 'gradle dependencies' for more information

我试过运行gradle dependencies,但这似乎并没有告诉我什么是错的。

我还可以做些什么来解决这个问题?

编辑:仔细观察后,我在gradle dependencies输出中注意到了这一点:

profile
\--- org.grails.profiles:web: -> 3.2.2 FAILED

这似乎是由于我的build.gradle中的行:

dependencies {
    profile "org.grails.profiles:web"

但是当我创建一个全新的grails 3.2.2应用程序时,该行也在那里,但事情正常。

我还能检查什么?

编辑:我将新的Grails 3.2.2应用与我的应用进行了比较,没有为profiles依赖项指定任何版本。

对于两者,在gradle dependencies --debug的日志中,我看到:

[io.spring.gradle.dependencymanagement.VersionConfiguringAction]
Using version '3.2.1' for dependency 'org.grails.profiles:web:'

新应用的下一行是:

[org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder]
Selecting new module version org.grails.profiles:web:3.2.1

但是我的应用程序:

[org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.DependencyGraphBuilder]
Selecting new module version org.grails.profiles:web:3.2.2

那么为什么在我的应用程序中它会切换到3.2.2?

4 个答案:

答案 0 :(得分:0)

作为一种解决方法,在我的build.gradle文件中,我在Web配置文件依赖项行的末尾添加了一个显式版本号3.2.1。这是Grails 3.2.2默认使用的版本。我还不确定为什么它在没有指定时会引入版本3.2.2。

profile "org.grails.profiles:web:3.2.1"

答案 1 :(得分:0)

我知道这已经有一段时间了,因为线程处于活动状态,但我想我可以在这里发布解决方案,以便可能帮助其他人处理此问题。

我在IntelliJ Idea中遇到了与Grails 3.3.3相同的问题。

要解决此问题,我将配置文件更改为在build.gradle的依赖项列表中进行编译。这会导致下载rest-api文件。然后我将编译更改回配置文件应该是。

运行gradle依赖项显示rest-api配置文件的以下内容

profile

--- org.grails.profiles:rest-api: - > 3.3.2      --- org.grails.profiles:base:3.3.1

而不是失败我之前得到的

答案 2 :(得分:0)

如果您在项目中使用Java 7,则可以执行以下操作:  -用Java 8编译prjoect  -然后使用Java 7运行您的项目

(这对我有用)

答案 3 :(得分:0)

最近我遇到了这个问题,因为repo.grails.org(Sectigo Limited)使用的CA不在Java cacerts中。这导致无法下载网络配置文件jar(https://repo.grails.org/grails/core/org/grails/profiles/web/4.0.0/web-4.0.0.jar)。

解决方案是在cacerts中导入Sentco root ca cert。 我为我的项目使用了单独的cacert,所以我导入了该证书,但是对于那些想要在Java级别导入的人,他们需要使用密码“ changeit”导入默认的cacert($ {JAVA_HOME} / jre / lib / security / cacerts)