【发布时间】:2014-08-07 23:18:25
【问题描述】:
我的设置:
- 我使用的是 Grails 2.3.8
- 我有几个私有插件,我通过“grails publish-plugin”手动发布到本地 Nexus 存储库
- 我有几个使用这些插件的 Grails 应用程序
- 分布式开发团队
我的目标:
- 能够部署我的私有插件的新版本并让我的 Grails 应用程序自动使用这些最新版本,而无需修改其 BuildConfig.groovy 文件
- 我知道内联/就地插件定义,但这不是我想要的
可能的解决方案:
据我了解,可能至少有两种方法可以实现我的目标:
- 部署我的插件的快照版本并让我的 Grails 应用使用这些快照版本(例如,version = "0.1-SNAPSHOT")
- 将我的 Grails 应用程序的 BuildConfig.groovy 配置为使用“latest.release”或Maven version ranges。例子:
- 编译“com.mycompany:some-plugin:latest.version”
- 编译 'com.mycompany:some-plugin:[0.1,)'
问题:
以上两种方法都可以。
它们都会导致我的插件的最新版本被下载,至少最初是这样。但是,如果我发布插件的新版本(无论是快照还是发布),在我的 Grails 应用程序上重新运行“grails run-app”不会尝试下载/安装可用的较新版本。
我觉得我的 M2_HOME 本地存储库中的 maven-metadata-*.xml 文件限制了已知存在的版本(即使 Nexus 有更新的版本可用)。
当我使用 mavenRepo() 定义我的 Nexus 存储库时,我是否需要传递一些参数来告诉 Grails 始终检查远程存储库上的新版本而不依赖本地存储库?
Graeme 的建议似乎也无济于事:Dependencies and lastest.release
任何帮助都会很棒。 :-)
【问题讨论】: