我们的主要项目有一个 POM。我会说其中定义了 10 到 15 个配置文件。依赖项是通用的,大概有 20 个左右。
我们(至少)有一个依赖项,其版本取决于配置文件是针对测试还是生产。生产部署需要:
<version>1.0.3.RELEASE</version>
作为依赖版本,而 dev 和 staging 部署需要
<version>1.0.3.STAGING</version>
我想进行一些设置,这样我们就不必再手动切换了。一种明显的解决方案是在配置文件中定义依赖关系。问题在于我们拥有的配置文件数量。每次版本号增加时,我们都必须小心不要错过更新某个地方的版本。
我阅读了有关标记化的信息,并尝试像这样声明通用依赖项:
<dependency>
<groupId>org.groupId</groupId>
<artifactId>lib-artifactId</artifactId>
<version>1.0.3.${lib-artifactId.version}</version>
</dependency>
然后添加
<properties>
<lib-artifactId.version>RELEASE</lib-artifactId.version>
</properties>
到每个配置文件,在适当的地方将 RELEASE 更改为 STAGING。
那是行不通的。错误的大意是找不到带有版本的库
1.0.3.${lib-artifactId.version}
换句话说,它没有替代令牌。
我将如何解决这个问题?