【发布时间】:2014-11-17 20:12:01
【问题描述】:
我有一个 Grails 2.2.4 项目,我正在升级到 Grails 2.4.3。我认为,我主要浏览了依赖项更改,除了我们的本地 jar 不再解析。
具体来说,我们的项目依赖于我们lib目录中的几个jar——例如newrelic-api-2.18.0.jar。每当我尝试编译项目时,都会收到此错误:
| Error Resolve error obtaining dependencies: The following artifacts could not be resolved: newrelic:newrelic-api:jar:2.18.0 in grailsCentral (http://repo.grails.org/grails/plugins) (Use --stacktrace to see the full trace)
...就目前而言这是完全公平的:那个 jar 确实不在 grailsCentral 中,它在 my-project/lib 中。那么如何让 Grails 在那里寻找呢?
我们所有的本地依赖项都无法以这种方式解决。我们所有的远程依赖项都正确解析(至少,一旦我对 Hibernate 版本进行了一些小的更改,它们就会正确解析)。我可以通过注释掉所有本地依赖项来成功解决依赖项,但是当然编译会在稍后出现一堆NoClassDefFoundErrors。
当我切换回 2.2.4 时,一切都再次正常:依赖关系已正确解决,应用程序加载没有问题。
这是我的 buildConfig 的头:
grails.servlet.version = "2.5"
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.target.level = 1.6
grails.project.source.level = 1.6
grails.project.dependency.resolver = "maven"
grails.project.dependency.resolution = {
cacheDir "target/ivy-cache"
inherits("global") { }
log "warn"
checksums true
legacyResolve true // whether to do a secondary resolve on plugin installation, not advised and here only for backwards compatibility
repositories {
inherits true
grailsPlugins()
grailsHome()
grailsCentral()
mavenLocal()
mavenCentral()
}
dependencies {
runtime 'newrelic:newrelic-api:2.18.0'
// ...various other deps, plugins, and whatnot...
}
}
我做错了什么?我在发行说明中没有看到任何关于这个问题的讨论,所以它肯定不是所有依赖项更改的预期结果。
【问题讨论】: