java - 将工件部署到两个不同的远程存储库 - Maven?
问题描述
需要根据特定环境从两个远程存储库部署工件。所以我尝试在 pom.xml 的分发管理中使用配置文件
<profiles>
<profile>
<id>dev-repository</id>
<activation>
<property>
<name>devRepo</name>
<value>true</value>
</property>
</activation>
<properties>
</properties>
<distributionManagement>
<repository>
<id>dev</id>
<url>https://nexus/dev</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</distributionManagement>
</profile>
<profile>
<id>qa-repository</id>
<activation>
<property>
<name>!devRepo</name>
</property>
</activation>
<properties>
</properties>
<distributionManagement>
<repository>
<id>qa</id>
<url>https://nexus/qa</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</distributionManagement>
</profile>
</profiles>
尝试激活配置文件
> mvn 清洁部署-PdevRepo
我收到以下错误。
部署失败:未在 distributionManagement 元素或 -DaltDeploymentRepository=id::layout::url 参数中的 POM 中指定存储库元素
似乎 pom 无法识别 distributionMangement 标签。
但是,如果没有单一分布管理的配置文件,它就可以正常工作。
有人请对此提出建议吗?
参考
解决方案
我不会使用配置文件,而是使用表单的 url 定义一个 distributionManagement<url>https://nexus/${target.repo}</url>
然后你可以做类似的事情mvn clean deploy -Ptarget.repo=dev
。
推荐阅读
- java - 使用 AtomicInteger 的线程如何减少上下文切换次数?
- python-3.x - 问题:Django 中的数据表服务器端处理
- python - 烧瓶,jinja2:jinja2.exceptions.UndefinedError:'gettext'未定义
- xamarin.forms - 无需在 Xamarin.Forms 中重新编译即可更改 UI
- java - 在表格列表视图中添加标题
- c# - C# 自动初始化变量?
- docker - 将 Go-Micro 与 docker-compose 一起使用时出错
- swift - 我可以将 ~/Library/Developer 移动到外部驱动器吗?
- react-native - 在 Web 上的 React Native 中单击时文本输入周围的边框
- java - 使用 OAuth2 的 API 网关的客户端凭据