我可以为 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%
。
在我们的 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
anddistributionManagement
elements of the POM.
...或其他...是:
创建一个(或者,如果已经存在,则使用)parent POM 所有项目继承。
我想到了另一个解决方案:TeamCity meta-runner。通过生成一个工作构建,您可以提取一个类似于构建步骤宏的元运行器。
如果您首先让部署工作,您可以在 TeamCity 构建配置中使用 Actions->Extract meta-runner...
提取元运行程序。
这显示了 XML 的编辑器,它指定了构建运行程序。删除所有非部署特定的构建步骤,您可以在 meta-runner/settings/params
块中提供构建步骤参数。您可能需要在构建步骤的 <params>
块中添加 pomLocation 和指定 %pomLocation%
。