2012-10-21 6 views
0

프로필에 따라 내 이슈 버전을 동적으로 검색하는 방법을 모색했습니다.메이븐 다이내믹 버전

종종 dev 또는 preprod를 빌드 할 때 -SNAPSHOT 접미어를 사용합니다. 그러나 데이터베이스 연결은 프로필에 따라 다르며 최신 SNAPSHOT 버전이 dev 또는 preprod 프로필을 사용하여 빌드 된 것인지 전혀 알 수 없습니다.

아이디어는 $ {접미사} =이

<version>1.0${suffix}</version> 

같은 버전을 가진 것

-snapshot ""자극 프로파일
  • 으로 구축 할 때 "
    • "preprod 건물 프로필
    • dev 프로필을 사용하여 빌드 할 때 "-DEV-SNAPSHOT"

    이 방법이 있습니까?

    감사

    편집 : 나는, 나는 3 개 프로파일 내 프로젝트의 동일한 "태그"버전을 빌드를 내 항아리를 구축 젠킨스에 가서 3 differents의 아티팩트를 배포 할 때

    제 목표입니다.

    실제로 내 프로젝트에 태그를 추가하고 프로필 프로필로 빌드 한 다음 버전을 수정하여 -SNAPSHOT을 추가하고 커밋하고 태그를 이동하고 preprod 프로필로 다시 빌드 한 다음 dev 프로필에 대해 반복합니다.

  • +1

    Maven을 사용하는 것은 잘못된 방법입니다. 실제 목표는 무엇입니까? 설명해 주시면 도와 드리겠습니다. –

    +0

    내 목표는 이슈가 빌드 및 설치되었을 때 어떤 프로파일이 사용되었는지 파악하는 것입니다. 이제는 빌드하기 전에 매번 프로필 번호를 관리해야합니다. 프로필을 작성할 때마다 달라집니다. – jpprade

    답변

    2

    @ Michael-O 의견에 대한 답변을보고 각 프로필에 설정된 시스템 속성에 따라 이슈의 최종 이름을 만들도록 maven assembly plugin을 구성하는 것이 좋습니다. 예를 들어 $ {프로필} (당신이 this question를 볼 수있는 일을 위해) 각 프로필에 다른 값으로 설정 속성해야

    <build>  
        <plugins> 
        <plugin> 
        <artifactId>maven-assembly-plugin</artifactId> 
        <executions> 
         <execution> 
         <id>create jar according to profile</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
         <configuration> 
          <finalName>${project.artifactId}-${project.version}_${profile}</finalName> 
          <appendAssemblyId>false</appendAssemblyId> 
         </configuration> 
         </execution> 
        </executions> 
        </plugin> 
    </plugins> 
    </build> 
    

    . 프로필을 현재 빌드하는데 사용하는 변수가 있다면 다른 질문이 될 수 있습니다.

    +0

    필요하지 않습니다. 표준 메크를 사용하고 싶습니다. 이슈에 [분류기] (http://maven.apache.org/plugins/maven-jar-plugin/jar-mojo.html#classifier)를 지정하기 만하면됩니다. 항아리 플러그인에서. –

    1

    JAR을 재구성 할 필요는 없으며 표준 메크를 사용하고 싶습니다. 간단히 classifier을 지정하십시오. 항아리 플러그인의 유물.

    그렇지 않으면 주어진 속성 파일의 속성을 필터링하고이를 앱에서 읽습니다. 내가하는 일 (예 : system.env=prod|test|localdev.