我有一个新的应用程序,其中包含父标记的所有内容。我必须在此应用程序中包含另一个依赖项,其父项与当前应用程序父项不同。问题是新依赖项的版本标记。
目前的pom:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>abc-pom</artifactId>
<groupId>com.abc</groupId>
<version>4.480.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<groupId>com.abc.libs</groupId>
<artifactId>dynamixSession</artifactId>
<packaging>jar</packaging>
<name>dynamixSession</name>
.....
.....
<dependency>
<groupId>com.pqr.someOtherProject</groupId>
<artifactId>SomeCoreProcessing</artifactId>
<version>4.2.14.2-SNAPSHOT</version>
<!-- <version>${project.version}</version>-->
<scope>provided</scope>
</dependency>
这个pom有效。由于我在这里硬编码版本号,每次版本更改时我是否需要更新此pom?或者它会自动更新。但我怀疑它会自动更新。 我想使用'$ {project.version}',以便我不必更新它。但是,如果我使用'$ {project.version}',它会尝试查找'com.pqr.someOtherProject.SomeCoreProcessing:4.480.0-SNAPSHOT',它不存在。
有没有办法解决这个问题,还是我坚持用我的pom中的版本进行攻击?
由于
答案 0 :(得分:1)
您可以使用版本插件来实现这一目标。这将是最简单的方法。插件特别适用于这些要求。
但它不会自动更新。您需要执行版本:use-latest-snapshots goal。
如果您使用的是持续集成工具(例如Jenkins),您可以使用夜间构建或其他方式自动执行此操作。
只需查看以下链接即可查看版本插件的所有详细信息。这是很好的记录。
答案 1 :(得分:0)
为什么不试试{env.SomeCoreProcessing_version}呢?只需确保在开始构建之前设置/导出SomeCoreProcessing_version变量。