如何获得semver Maven版本的主要部分?

时间:2011-03-24 22:09:53

标签: maven semantic-versioning

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

例如,如果我的版本是1.3.4,我希望1稍后在同一个pom.xml的配置中使用它

类似的东西:

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

如果没有,有哪些替代方案?

3 个答案:

答案 0 :(得分:29)

找到它。 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 :(得分:9)

这适用于Maven 3.3.9:

${project.artifact.selectedVersion.majorVersion}

答案 2 :(得分:0)

版本不一定属于您描述的结构。

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

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