Maven - 在依赖项中使用版本

时间:2014-09-02 13:30:09

标签: java maven dependencies

我有一个新的应用程序,其中包含父标记的所有内容。我必须在此应用程序中包含另一个依赖项,其父项与当前应用程序父项不同。问题是新依赖项的版本标记。

目前的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中的版本进行攻击?

由于

2 个答案:

答案 0 :(得分:1)

您可以使用版本插件来实现这一目标。这将是最简单的方法。插件特别适用于这些要求。

但它不会自动更新。您需要执行版本:use-latest-snapshots goal。

如果您使用的是持续集成工具(例如Jenkins),您可以使用夜间构建或其他方式自动执行此操作。

只需查看以下链接即可查看版本插件的所有详细信息。这是很好的记录。

http://mojo.codehaus.org/versions-maven-plugin/

答案 1 :(得分:0)

为什么不试试{env.SomeCoreProcessing_version}呢?只需确保在开始构建之前设置/导出SomeCoreProcessing_version变量。