Grails没有从本地仓库下载最新的插件版本

时间:2014-06-17 20:03:32

标签: maven grails nexus

我的设置:

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

我的目标:

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

可能的解决方案:

据我了解,可能至少有两种方法可以实现我的目标:

  1. 部署我的插件的快照版本并让我的Grails应用程序使用这些快照版本(例如,版本=" 0.1-SNAPSHOT")
  2. 配置我的Grails应用程序的BuildConfig.groovy以使用" latest.release"或Maven version ranges。例子:
    • compile' com.mycompany:some-plugin:latest.version'
    • compile' com.mycompany:some-plugin:[0.1,)'
  3. 问题:

    上述两种方法。

    它们都会导致我的插件的最新版本被下载,至少最初是这样。但是,如果我发布新版本的插件(无论是快照还是发布),请重新运行" grails run-app"在我的Grails应用程序上,不要尝试下载/安装可用的新版本。

    我觉得我的M2_HOME本地仓库中的maven-metadata - *。xml文件限制了已知存在的版本(即使Nexus有更新版本可用)。

    当我使用mavenRepo()定义我的Nexus repo时,是否需要传入一些参数来告诉Grails始终检查远程仓库上的新版本而不依赖本地仓库?

    格雷姆此处的建议似乎也无济于事:Dependencies and lastest.release

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

2 个答案:

答案 0 :(得分:3)

您是否为存储库配置了updatePolicy?见

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

Section" Aether和SNAPSHOT依赖"。例如:

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

答案 1 :(得分:0)

我正在使用2.3.7并且似乎遇到了类似的问题。在开发过程中使用SNAPSHOT插件应该是您想要的。我使用的一个解决方法是从Artifactory中删除SNAPSHOT版本,然后在构建新的SNAPSHOT后,识别出插件更改。我猜您正在使用Maven构建,现在是默认情况下您可以尝试切换到常春藤构建,看看是否有帮助。如果您能够重新创建,则应创建JIRA。我相信这是一个问题,我不记得使用旧版本(2.1.5)和使用常春藤版本。