调试Grails命令"刷新依赖"与maven \与Nexus的问题

时间:2014-12-24 12:24:14

标签: java maven grails groovy

我在公司网络上,以便检索我们使用Nexus的依赖项。 Grails repo被添加到nexus存储库中,所以现在剩下的就是配置grails以使用nexus。

为了开发Java Maven项目,我只需要指定它应该注意哪个settings.xml文件,因为Nexus URL和凭据都存储在那里。

现在我们正在切换到Grails并且在创建新项目时grails挂起在配置类路径上大约200秒(因为它被配置为在200秒后超时)然后说:

Resolve error obtaining dependencies: Failed to read artifact descriptor for jline:jline:jar:2.12 (Use --stacktrace to see the full trace)
Error |
Required Grails build dependencies were not found. This is normally due to internet connectivity issues (such as a misconfigured proxy) or missing repositories in grails-app/conf/BuildConfig.groovy. Please verify your configuration to continue.
Process was killed

现在这可能是repo配置的一个问题,但是我无法正确调试它。

我尝试拨打grails refresh-dependencies --stacktrace,我尝试将error中的日志记录更改为debug中的traceConfig.groovy。尝试在verbose中设置日志记录到BuildConfig.groovy(但这是为了Ivy,我们正在使用Maven,当然它什么也没做),现在我不确定要做什么到做。

如果有帮助,请点击BuildConfig.groovy中的当前回购配置:

repositories {
    //inherits true // Whether to inherit repository definitions from plugins       

    grailsPlugins()
    grailsHome()
    mavenLocal()

    mavenRepo(id:'nexusconf', url:"https://nexusurl/repository/rootrepo/") {
        auth username: "user", password: "pass"
    }
    //grailsCentral()
    //mavenCentral()
    // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories          
    //mavenRepo "http://repository.codehaus.org"
    //mavenRepo "http://download.java.net/maven/2/"
    //mavenRepo "http://repository.jboss.com/maven2/"
}

1 个答案:

答案 0 :(得分:2)

我认为这取决于您使用的是哪个版本的grails以及您是否使用以太或常春藤进行依赖项解析(在BuildConfig中使用grails.project.dependency.resolver进行设置)。根据grails 2.4.4文档,要使用Aether进行身份验证,需要在BuildConfig以及USER_HOME / .grails / settings.groovy中进行配置。要使用Ivy进行身份验证,配置仅在USER_HOME / .grails / settings.groovy中进行。

以下是文档说的内容:


使用以太身份验证

要使用Aether进行身份验证,您可以在存储库定义中定义凭据:

mavenRepo(url:"http://localhost:8082/myrepo") { auth username: "foo", password: "bar" }

或者您可以在存储库中指定ID:

mavenRepo(id:'myrepo', url:"http://localhost:8082/myrepo")

然后在USER_HOME / .grails / settings.groovy中声明您的凭据:

grails.project.dependency.authentication = { credentials { id = "myrepo" username = "admin" password = "password" } }

使用Ivy进行身份验证

如果您的存储库需要身份验证,您可以使用凭据块配置它:

credentials { realm = ".." host = "localhost" username = "myuser" password = "mypass" }

可以使用grails.project.ivy.authentication设置将其放在USER_HOME / .grails / settings.groovy文件中:

grails.project.ivy.authentication = { credentials { realm = ".." host = "localhost" username = "myuser" password = "mypass" } }

Here's the documentation in its entirety