如何在POM中获取maven版本号

时间:2013-09-15 11:39:46

标签: java maven

我需要从pom.xml文件中获取maven版本号(例如3.0.5,3.1.0)我需要它才能为以下内容添加正确的依赖项:

<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-model</artifactId>
    <version>3.0.5</version>
</dependency>
<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-plugin-api</artifactId>
    <version>3.0.5</version>
</dependency>

版本3.1.0需要相同版本的库,3.0.5版本相同。 我认为在poms中必须有类似${maven.version}的东西,但我找不到它。

编辑: 我需要该项目在maven 3.0和3.1中工作所以我不能静态地执行它必须得到当前正在运行的maven的版本

2 个答案:

答案 0 :(得分:3)

最好的解决方案是定义这样的属性:

<properties>
  <maven.version>3.0.3</maven.version>
</properties>

并在pom文件中定义具有此属性的依赖项。

  <dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-core</artifactId>
    <version>${maven.version}</version>
  </dependency>

  <dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-model</artifactId>
    <version>${maven.version}</version>
  </dependency>

或插件-api如下:

  <dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-plugin-api</artifactId>
    <version>${maven.version}</version>
  </dependency>

对于maven模型,如果使用3.0.1或3.0.5或3.1并不重要,因为模型(pom.xml)尚未更改。对于plugin-api,你可以使用3.0.5并让它在Maven 3.1中运行。 BTW:以上内容来自一个在Maven 3.0和3.1下运行的插件。

答案 1 :(得分:1)

您可以通过settings.xml文件自行添加。

${settings.mvn.version}会引用:

<settings>
  <mvn>
    <version>3.1.0</version>
  <mvn>
</settings>

或者使用以下内容在{$mvn.version}中直接添加pom.xml

<project>
...
  <properties>
     <mvn.version>3.1.0</mvn.version>
  </properties>
...
</project>