【问题标题】:Grails refresh-dependencies doesn't download snapshot dependency from local maven repositoryGrails refresh-dependencies 不会从本地 maven 存储库下载快照依赖项
【发布时间】:2012-10-22 20:27:11
【问题描述】:

我正在使用 Grails 2.1.1 和 Maven 3.0.3。

在我的 buildConfig.groovy 中,我有 pom true,我通过 grails create-pom 生成了 pom.xml。在这个 pom 中,我依赖于 <version>1.0-SNAPSHOT</version>,它只存在于我的本地 maven 存储库中。我可以在这个 pom 上成功运行mvn clean compile

但是,运行 grails refresh-dependencies 不会从我的本地 maven 存储库下载我的快照依赖项的最新版本。我可以让它下载最新版本的唯一方法是从常春藤缓存中手动删除它。

根据documentation

版本号以 -SNAPSHOT 结尾的所有依赖项(jar 和插件)都被 Grails 隐式视为正在更改。

我假设它会识别我的快照文件正在更改并在修改时下载它。我是否缺少其他一些配置步骤?我只想使用 maven 进行依赖管理,但这完全是错误的方式来使用 Maven 和 Grails?

【问题讨论】:

    标签: maven grails grails-2.1


    【解决方案1】:

    这实际上是 Aether 解析器的正常行为。

    --refresh-dependencies 不会绕过本地 Maven 缓存。为此,您需要将包含您的依赖项的 maven 存储库设置为始终下载新快照。在 BuildConfig.groovy 的存储库块中:

    mavenRepo ("http://my.server/repos/my-grails-plugins") {
        updatePolicy 'always'
    }
    

    归功于http://asoftwareguy.com/2013/10/25/grails-2-3-maven-dependency-caching-issues/

    【讨论】:

      【解决方案2】:

      由于我没有收到任何回复,似乎解决方案是不使用 grails 命令行,而是使用 Grails 的 maven 目标。

      mvn grails:run-app 可以解决问题。所有快照依赖项都已刷新,我可以启动我的应用程序并查看反映的本地更改。这样我就完全忽略了 ivy 并让 maven 处理所有事情。

      编辑:如果你走这条路,我建议按照Maven Integration 上的用户指南第 5 章来设置你的 pom.xml 等。我能够按照这个得到它毫无意外地设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-27
        • 2020-07-13
        • 2013-10-08
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 2015-11-13
        相关资源
        最近更新 更多