java - 具有属性的 Maven 版本

标签 java maven version

我有大约 400 个插件的大型 Maven (Tycho) 项目。

我们在每个 POM 文件中指定了应用程序的版本。

有没有办法只在一个地方为所有 POM:s 指定版本?

我希望有些人会这样想:

<properties>
<buildVersion>1.1.2-SNAPSHOT</buildVersion>
</properties>

....

<version>${buildVersion}</version>

我们有父 pom.xml:

<modelVersion>4.0.0</modelVersion>
<groupId>company</groupId>
<artifactId>build.parent</artifactId>
<version>1.1.2-SNAPSHOT</version>
<packaging>pom</packaging>

那么在每个 POM 中都是对父 POM 的引用:

<parent>
  <artifactId>build.parent</artifactId>
  <groupId>company</groupId>
  <relativePath>../build.parent/pom.xml</relativePath>
  <version>1.1.2-SNAPSHOT</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<groupId>company</groupId>
<artifactId>artifact</artifactId>
<version>1.1.2-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>

最佳答案

如果您有一个父项目,您可以在父 pom 中设置版本,在子项目中您可以使用 ${project.version}${version} 引用同级库 属性。

如果你想避免在每个 child 中重复 parent 的版本:你可以这样做:

<modelVersion>4.0.0</modelVersion>
<groupId>company</groupId>
<artifactId>build.parent</artifactId>
<version>${my.version}</version>
<packaging>pom</packaging>

<properties>
<my.version>1.1.2-SNAPSHOT</my.version>
</properties>

然后在你的 child pom 中你必须这样做:

    <parent>
      <artifactId>build.parent</artifactId>
      <groupId>company</groupId>
      <relativePath>../build.parent/pom.xml</relativePath>
      <version>${my.version}</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>company</groupId>
    <artifactId>artifact</artifactId>
    <packaging>eclipse-plugin</packaging>

    <dependencies>
        <dependency> 
           <groupId>company</groupId>
           <artifactId>otherartifact</artifactId>   
           <version>${my.version}</version>
or
           <version>${project.version}</version>
        </dependency>
    </dependencies>

关于java - 具有属性的 Maven 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19123013/

相关文章:

java - 根据屏幕分辨率以编程方式创建 View

java - Maven - 将类添加为依赖项后导入该类

windows - 如何在 Windows 上使用多个版本的 Julia

java - Maven: "Could not find artifact package:jar:1.0-SNAPSHOT"?

c# - 从 .exe 获取 FileDescription (ProgramName)

jquery - 为什么 Firefox 3.5.2 的 JQuery.browser.version 返回 1.9.1.2

java - 这个使用模拟对象的 Spring 单元测试到底是如何工作的?

java - 随机化球大小的多球程序

java - 当开发工具重新启动 Web 服务器时,计划任务不会停止

java - Maven 中的 Vaadin 应用程序获取小部件错误(使用 tomcat)