2011-03-24 1 views
15

project.version의 주 버전 (<Major>.<Minor>.<Patch>)을 가져올 수 있습니까? 내 버전 1.3.4 경우semver를 얻는 방법 Maven 버전의 주요 부분은 무엇입니까?

예를 들어, 나중에 같은 pom.xml 파일

뭔가 등의 구성에서 사용하는 1을 좀하고 싶습니다 :

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

그렇지 않다면, 무엇을 대안이 있습니까?

+3

그것은 메이븐은 http://SemVer.org 버전 사양을 사용하지 않는 것을 주목할 필요가있다. 대신에 매우 유사한 자체 컨벤션을 사용합니다. 여기에 대해 읽어보십시오 (3.3.1 "프로젝트 버전"섹션 아래) ... http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-pom-syntax.html –

답변

26

발견. build-helper-maven-plugin에는 버전의 구성 요소를 구문 분석 할 수있는 기능이 있습니다. 이 메이븐 3.3.9에서 작동

<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

+0

큰 도움 - 덕분에 – samael

0

버전이 반드시 사용자가 설명하는 구조에있는 것은 아닙니다.

Maven은 후행 번호에 대한 규칙이 있지만 사용하지 않아도됩니다.

분해하려는 컨벤션을 갖고 있다면, 정의 할 때 여러 가지 속성을 여러 조각으로 설정하는 자체 메이븐 플러그인을 작성할 수 있습니다.

+0

에 따르면 [Maven 레퍼런스 문서] (http://www.sonatype.com/books/mvnref-book/reference/pom-relationships-sect-pom-syntax.html)에서 Sonatype에는 자유롭게 사용할 수있는 규칙이 있습니다. 위반). – SingleShot

7

:

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

그것은 나를 위해 매우 잘 작동했다. 3.3.9. 그게 표준적인 일이라면 어떨까요? 해당 변수에 대한 공식 maven 문서를 찾을 수 없습니다. –

+0

'$ {project.artifact} '는 좋은 트릭이지만 표준은 아닙니다. 공식적으로는'$ {project}'만, https://maven.apache.org/pom.html을 보아라. –

관련 문제