【问题标题】:How do I get grails 2.4.3 to resolve dependencies in <project-dir>/lib?如何让 grails 2.4.3 解决 <project-dir>/lib 中的依赖关系?
【发布时间】: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...
    }
}

我做错了什么?我在发行说明中没有看到任何关于这个问题的讨论,所以它肯定不是所有依赖项更改的预期结果。

【问题讨论】:

    标签: maven grails


    【解决方案1】:

    这在某种程度上是一个已知问题;请参阅the upgrade guide 中的“无 Aether 的初始离线模式”部分。该指南只提到了与 grails 一起提供的 jar,但所有 jar 都会受到影响,并且除非首先远程解决,否则不会在本地解析任何 jar。我想如果你有本地依赖,你应该从你自己的 Maven 安装中为它们提供服务。

    如果出于某种原因您不想管理自己的 Maven 存储库,升级指南建议您改用 Ivy。不要这样做。 Ivy 在 2.4.3 中不能可靠地解析传递依赖。如果您无法维护自己的 Maven 存储库,请不要升级。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 2013-06-25
      相关资源
      最近更新 更多