我正在构建一个项目,它由几个(有时不相关的)模块和一些更多的非标准 java 模块(使用 ANT 构建)组成。
每个 Maven 模块在完成后都会部署到发布存储库。
如果构建在中间失败,我可能已经部署了一些模块,因此如果我尝试重建,新的部署尝试将会失败,因为工件已经部署。
是否可以强制部署,或者在再次部署之前删除已部署的工件?
听起来中间件管理员已将您的远程存储库实例(Nexus 或 Artifactory 或其他)配置为不允许工件重新部署,正如 @khmarbaise 所说,这是有充分理由的。 Nexus 可以配置为允许具有特定角色或具有工件删除权限的用户删除工件。如果您的管理员以这种方式设置,也许您可以请求删除权限并删除有问题的工件。或者,也许 Nexus 管理员会同意为您做这件事。
如果这两种方法都不可行,可以尝试以下一些方法,以防止将来发生这种情况:
- 如果您正在使用
release
插件,进行一次试运行(-DdryRun=true
首先在发布:准备命令行上)。 Maven 应该报告任何错误而不提交给 SCM。
- 尝试跑步
mvn install
首先是你的项目组。这会将工件安装到本地存储库,而不是远程存储库。如果出现问题,您可以从本地存储库中取出工件并从头开始,重复直到获得完整的构建。
- 如果您正在运行多模块构建,则有命令行选项 http://www.sonatype.com/books/mvnref-book/reference/_using_advanced_reactor_options.html允许从特定项目继续恢复 Maven 构建。
- Define
-Dmaven.deploy.skip=true
在 Maven 命令行上。这与建议 #2 类似,除了 Maven 会实际加载和配置部署插件 http://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html,它只是不会实际部署到远程存储库。一旦一切正常,删除skip属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)