我可以为 Maven 中的任何项目设置默认部署吗?

Can I set the default deployment for any project in Maven?

在我们的 TeamCity 构建服务器上,每个项目现在都在项目的 POM 文件中使用命令行参数 -DaltDeploymentRepository<distributionManagement> 指定部署存储库。

但是我们正计划迁移到 Nexus 3,并且需要进行大量工作才能确保所有项目都正确配置。还有就是部署过程要和每个开发者沟通。

是否可以在 settings.xml 或其他中指定 Maven 部署目标,以便除非另有说明,否则任何在 TeamCity 上执行 deploy 的项目都将部署到正确的存储库?

...在settings.xml...否:

Servers

The repositories for download and deployment are defined by the repositories and distributionManagement elements of the POM.

...或其他...是:

创建一个(或者,如果已经存在,则使用)parent POM 所有项目继承。

我想到了另一个解决方案:TeamCity meta-runner。通过生成一个工作构建,您可以提取一个类似于构建步骤宏的元运行器。

如果您首先让部署工作,您可以在 TeamCity 构建配置中使用 Actions->Extract meta-runner... 提取元运行程序。

这显示了 XML 的编辑器,它指定了构建运行程序。删除所有非部署特定的构建步骤,您可以在 meta-runner/settings/params 块中提供构建步骤参数。您可能需要在构建步骤的 <params> 块中添加 pomLocation 和指定 %pomLocation%