2011-06-15 93 views
0

this question类似,我无法执行glassfish部署,因为目前澳大利亚的某些服务器已关闭。我已经将工件在本地缓存了好几个月。maven:如何防止插件更新

如何告诉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不要尝试插件更新。

回答

5

使用-o--offline切换器脱机工作 - 这应该让Maven不费心去检查任何存储库是否有新的更新或快照,就好像您没有网络访问一样。

此外 - 您是否为每个插件指定了<version>?应该不需要检查发布插件版本的更新。

+0

我确实尝试过“-o”。但是当与“glassfish:重新部署”一起使用时,会导致“没有这样的本地命令,取消部署”。我有 2.1为maven-glassfish-plugin指定。 – 2011-06-15 18:18:37

+0

Doh,如果我将“-o”移动到命令行的第一个参数arg上,谢谢! – 2011-06-15 18:23:13

1

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

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

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