Grails refresh-dependencies不会从本地maven存储库下载快照依赖项

时间:2012-11-02 07:07:30

标签: maven grails grails-2.1

我正在使用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一起使用?

2 个答案:

答案 0 :(得分:8)

这实际上是以太旋转变压器的正常行为。

--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/

答案 1 :(得分:0)

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

mvn grails:run-app可以解决问题。刷新所有快照依赖项,我可以启动我的应用程序并查看反映的本地更改。这样我完全无视常春藤,让maven照顾好一切。

编辑:如果您选择这条路线,我建议您按照Maven Integration上的“用户指南”第5章的说明设置您的pom.xml等。我能够按照此说明进行操作设置没有任何意外。