【问题标题】:Grails not downloading latest plugin version from local repoGrails 没有从本地 repo 下载最新的插件版本
【发布时间】:2014-08-07 23:18:25
【问题描述】:

我的设置:

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

我的目标:

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

可能的解决方案:

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

  1. 部署我的插件的快照版本并让我的 Grails 应用使用这些快照版本(例如,version = "0.1-SNAPSHOT")
  2. 将我的 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

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

【问题讨论】:

    标签: maven grails nexus


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2016-11-11
        • 2012-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-22
        • 1970-01-01
        • 1970-01-01
        • 2014-02-21
        相关资源
        最近更新 更多