Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得Maven版本的semver主要部分?_Maven_Semantic Versioning - Fatal编程技术网

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

如何获得Maven版本的semver主要部分?,maven,semantic-versioning,Maven,Semantic Versioning,是否可以获取项目的主要版本(。)。版本 例如,如果我的版本是1.3.4,我希望以后在相同pom.xml的配置中使用1 比如: <configuration> <name>project_name.${project.version:major}</name> </configuration> 项目名称。${project.version:major} 如果没有,有哪些替代方案?版本不一定符合您描述的结构 Maven对尾随数字有约定,但您不

是否可以获取
项目的主要版本(
)。版本

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

比如:

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

项目名称。${project.version:major}

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

版本不一定符合您描述的结构

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

如果您有一个想要反汇编的约定,您可以编写自己的maven插件,在您定义这些约定时为这些约定设置若干属性。

找到了它。可以解析出版本的组件

  <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>

org.codehaus.mojo
构建助手maven插件
1.5
初始化
解析版本
解析版本
org.apache.maven.plugins
maven antrun插件
1.1
包裹
跑
[版本]${project.version}
[majorVersion]${parsedVersion.majorVersion}

这适用于Maven 3.3.9:

${project.artifact.selectedVersion.majorVersion}

根据Sonatype,有一个约定(你可以随意违反)。+1-我已经使用Maven很多年了,但并不知道这一点!值得注意的是,Maven没有使用版本控制规范。相反,它使用它自己的约定,这是非常相似的。请在此处阅读(在3.3.1“项目版本”部分下)。。。这在maven 3.3.9中对我非常有效。知道这是不是一个标准的maven事件吗?我找不到该变量的官方maven文档。我可以说,
${project.artifact}
是一个不错的技巧,但不是一个标准。官方上,只有
${project}
,见@MarcosZolnowski,不正确,API是官方文档:该API是为插件开发人员提供的,对于maven用户没有任何保证。任何时候他们都可以改变这种行为。这不是插件api,而是核心api。插件api规范为: