代码之家  ›  专栏  ›  技术社区  ›  Raedwald

在Maven POM中获取语义版本控制组件

  •  0
  • Raedwald  · 技术社区  · 7 年前

    有可能得到主要版本吗( <Major>.<Minor>.<Patch> )的 project.version ?

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

    类似于:

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

    如果没有,还有什么选择?

    0 回复  |  直到 7 年前
        1
  •  30
  •   Jmini Peter Kriens    10 年前

    找到了。这个 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>
    
        2
  •  10
  •   Marcos Zolnowski    10 年前

    这适用于Maven 3.3.9:

    ${project.artifact.selectedVersion.majorVersion}
    
        3
  •  0
  •   bmargulies    15 年前

    版本不一定在您描述的结构中。

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

    如果您有一个您喜欢的要反汇编的约定,那么您可以编写自己的maven插件,在您定义它们时为这些部分设置几个属性。