我在公司网络上,以便检索我们使用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
中的trace
和Config.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/"
}
答案 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"
}
}