【问题标题】:grails dependency resolutiongrails依赖解析
【发布时间】:2011-06-27 15:25:57
【问题描述】:

我的 Grails 项目依赖于使用 Maven 构建的内部库 Commons.jar。在BuildConfig.groovy 中,我已将其配置为首先在本地 Maven 存储库中查找此依赖项,然后在公司范围的存储库中查找。

repositories {        
    // Read the location of the local Maven repository from $M2_REPO
    mavenLocal System.getenv("M2_REPO")        
    mavenRepo "http://build.mycompany.com/wtp_repository"
}

plugins {
    build 'org.grails.plugins:spring-security-core:1.0.1'
}

dependencies {
    compile ('com.mycompany:Commons:1.0.0-SNAPSHOT')
}

当我构建Common/jar(使用mvn deploy)时,它首先存储在mavenLocal中,然后复制到mavenRepo。但是,当我构建 Grails 应用程序时,它会在以下位置查找 JAR:

  • Ivy 缓存(默认为 ~/.ivy2/cache)
  • mavenLocal(由 $M2_REPO 定义)
  • mavenRepo (http://build.mycompany.com/wtp_repository)

因此,Grails 应用程序不断地从 Ivy 缓存中获取旧版本的 JAR,而在构建 Commons 项目时,它永远不会更新。

如果我知道怎么做,我想我可以解决这个问题:

  • 防止 Grails 在 Ivy 缓存中查找依赖项(尽管我猜禁用缓存可能会大大减慢我的构建速度)
  • 确保在我构建 Commons 时也更新 Ivy 缓存

但是,似乎其他任何引用 Maven 项目的 SNAPSHOT 工件的人也应该有这个问题,所以也许我遗漏了什么?

谢谢!

【问题讨论】:

    标签: java maven-2 grails groovy ivy


    【解决方案1】:

    我猜this discussion 与您遇到的问题有关,可能会提出一些解决方法/解决方案。

    【讨论】:

    • 请考虑将链接信息的相关部分添加到您的答案中,以帮助对抗链接腐烂并使此答案本身有用。
    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    相关资源
    最近更新 更多