【问题标题】:How to get the semver Major part of a Maven version?如何获得 Maven 版本的主要部分?
【发布时间】:2011-07-22 12:33:43
【问题描述】:

是否可以获得project.version 的主要版本(<Major>.<Minor>.<Patch>)?

例如,如果我的版本是1.3.4,我想获得1 以便以后在同一个 pom.xml 的配置中使用它

类似:

<configuration>
  <name>project_name.${project.version:major}</name>
</configuration>

如果没有,有什么替代方案?

【问题讨论】:

标签: maven semantic-versioning


【解决方案1】:

这适用于 Maven 3.3.9:

${project.artifact.selectedVersion.majorVersion}

【讨论】:

【解决方案2】:

找到了。 build-helper-maven-plugin 具有解析版本组件的能力。

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.5</version>
        <executions>
          <execution>
            <phase>initialize</phase>
            <id>parse-version</id>
            <goals>
              <goal>parse-version</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.1</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <echo>[version] ${project.version}</echo>
                <echo>[majorVersion] ${parsedVersion.majorVersion}</echo>
              </tasks>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

【讨论】:

  • +1 - 我已经使用 Maven 多年但不知道这一点!
【解决方案3】:

版本不一定采用您描述的结构。

Maven 有尾随数字的约定,但您不必使用它们。

如果您有想要反汇编的约定,您可以编写自己的 maven 插件,在定义它们时将多个属性设置为多个部分。

【讨论】:

猜你喜欢
  • 2015-11-30
  • 2013-12-12
  • 1970-01-01
  • 2018-10-12
  • 2018-11-24
  • 2011-10-19
  • 2012-09-01
  • 2019-11-04
相关资源
最近更新 更多