我的设置:

  • 我正在使用 Grails 2.3.8
  • 我有几个私有(private)插件,我通过“grails publish-plugin”手动发布到本地 Nexus 存储库
  • 我有几个使用这些插件的 Grails 应用程序
  • 分布式开发团队

  • 我的目标:
  • 能够部署我的私有(private)插件的新版本并让我的 Grails 应用程序自动使用这些最新版本,而无需修改它们的 BuildConfig.groovy 文件
  • 我知道内联/就地插件定义,这不是我想要的

  • 可能的解决方案:

    据我了解,可能至少有两种方法可以实现我的目标:
  • 部署我的插件的快照版本并让我的 Grails 应用程序使用这些快照版本(例如,版本 =“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

    任何帮助都会很棒。 :-)

    请您参考如下方法:

    您是否配置了updatePolicy对于存储库?看

    http://grails.org/doc/latest/guide/conf.html#changingDependencies

    “Aether 和 SNAPSHOT 依赖项”部分。例子:

    mavenRepo "http://myrepo", { 
        updatePolicy "interval:1" 
    } 
    


    评论关闭
    IT序号网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!