2011-03-24 48 views
15

是否有可能獲得project.version的主要版本(<Major>.<Minor>.<Patch>)?如何獲取semver Maven版本的主要部分?

例如,如果我的版本是1.3.4,我想獲得1在相同的pom.xml

東西等的配置在以後使用它:

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

如果不是,是替代品嗎?

+3

值得注意的是Maven不使用http://SemVer.org版本規範。它使用它自己的約定,它非常相似。在這裏閱讀它(在3.3.1「項目版本」部分下)... http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-pom-syntax.html – 2012-05-09 22:07:40

回答

26

找到它。 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> 
+0

+1 - 我多年來一直在使用Maven,但並不知道這件事! – SingleShot 2011-10-24 03:36:15

+0

很好的幫助 - 謝謝 – samael 2014-09-11 11:25:07

0

版本不一定進來你所描述的結構。

Maven的有尾號公約,但你沒有使用它們。

如果你有你喜歡的,你要拆開一個約定,你可以寫你自己的Maven插件,設置了幾個屬性的幾件你定義它們。

+0

根據到Sonatype的[Maven參考文檔](http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-pom-syntax.html)有一個約定(您可以自由違反)。 – SingleShot 2011-10-24 03:34:24

7

這部作品的Maven 3.3.9:

${project.artifact.selectedVersion.majorVersion} 
+0

這對我在maven 3.3.9中工作得非常好。任何想法,如果這是一個標準的maven事情?我找不到該變量的官方maven文檔 – 2017-11-03 21:55:54

+0

我可以說'$ {project.artifact}'是一個很好的技巧,但不是一個標準。官方只有'$ {project}',請參閱https://maven.apache.org/pom.html – 2017-11-04 02:12:37