【问题标题】:maven: how to prevent plugin updatesmaven:如何防止插件更新
【发布时间】:2011-06-15 18:06:59
【问题描述】:

类似于this question,我无法进行 glassfish 部署,因为目前澳大利亚的某些服务器已关闭。我已经在本地缓存了几个月的工件。

如何告诉 maven 不要尝试更新插件(及其依赖项)?我尝试将以下内容添加到我的 pom 中,但没有帮助:

<pluginRepositories>
    <pluginRepository>
            <id>ocean</id>
            <url>http://maven.ocean.net.au</url>
            <releases>
                    <enabled>false</enabled>
                    <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>never</updatePolicy>
            </snapshots>
    </pluginRepository>

</pluginRepositories>

我还尝试了命令行开关。有-npu,它似乎对 Maven 2.2.1 没有帮助。在 Maven 3 上,文档说“无效,只是为了向后兼容而保留”,所以我对那个没有太大希望。

我们很快就会迁移到 Nexus,但应该有一个简单的方法来告诉 maven 不要尝试更新插件。

【问题讨论】:

    标签: java maven maven-plugin


    【解决方案1】:

    使用 -o--offline 开关离线工作 - 这应该使 Maven 不必费心检查任何存储库的新更新或快照,就好像您没有网络访问权限一样。

    另外 - 您是否为每个插件指定 &lt;version&gt;?应该不需要检查插件发布版本的更新。

    【讨论】:

    • 我确实尝试过“-o”。但是当与“glassfish:重新部署”一起使用时,它会导致“没有这样的本地命令,取消部署”。我为 maven-glassfish-plugin 指定了 2.1
    • Doh,如果我将“-o”向上移动到命令行上的第一个参数,它就可以工作。谢谢!
    【解决方案2】:

    如果您使用 maven 2,则有一个名为 plugin-registry.xml 的文件,您可以在其中指定每个插件的版本。这个文件的丑陋之处在于,它必须被复制/安装在每个使用 maven 的机器上(ci 服务器、开发机器等)。

    好处是你可以指定一个版本,下载一个版本就不会再更新了。

    如果你迁移到maven 3,这个已经整理好了,你可以在pom上指定你想要的版本。

    【讨论】:

      猜你喜欢
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 2022-07-07
      • 1970-01-01
      • 2019-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多