maven 빌드 시 war 파일에 buildNumber 추가

개발툴|2014. 6. 26. 16:33

maven 빌드 시 생성되는 war 파일뒤에 버전을 추가하자는 의견이 나왔다.

현재는 user-1.0.war와 같은 형태로 war 파일을 생성하고 있는데 이를 다음과 같은 형식으로 빌드시마다 빌드넘버를 붙여주고 싶었다.

user-1.0.1.war

user-1.0.2.war

user-1.0.3.war


구글에 물어보니 다양한 방법들이 나왔고, 현재 프로젝트에서 메이븐을 사용하고 있기에 메이븐 플러그인을 추가하여 해결할 수 있는 방법을 사용하기로 결정했다.



먼저 다음의 플러그인을 추가하도록 한다.

<plugin>

<groupId>org.codehaus.mojo</groupId>

<artifactId>buildnumber-maven-plugin</artifactId>

<version>1.2</version>

<executions>

        <execution>

               <phase>validate</phase>

               <goals>

                       <goal>create</goal>

               </goals>

        </execution>

</executions>

<configuration>

        <doCheck>true</doCheck>

        <doUpdate>false</doUpdate>

        <format>{0,number}</format>

        <items>

               <item>buildNumber</item>

        </items>

        <revisionOnScmFailure />

</configuration>

</plugin>


그런 후 scm 정보를 추가해 준다.

<scm>

<connection>scm:git:https://github.com/xxx/xxxx.git</connection>

</scm>


생성 되는 war 파일에 buildNumber가 붙어서 나오도록 하기 위해 다음과 같이 설정한다.

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-war-plugin</artifactId>

<configuration>

        <warName>${project.artifactId}-${project.version}-${buildNumber}</warName>

        <warSourceDirectory>WebContent</warSourceDirectory>

</configuration>

</plugin>


scm 정보를 추가해 주지 않으면 빌드 시 오류를 발생하게 되는데 buildnumber-maven-plugin의 버전을 1.0-beta-3로 사용하게 되면 scm 정보를 추가해 주지 않아도 오류가 발생하지 않는다.


차후에 Git revision 번호를 활용하여 buildNumber를 생성할 수도 있기 때문에 일단은 scm 정보를 추가해 주도록 하자.

이와 같이 설정 추가 후 빌드를 하면 pom.xml 파일이 있는 경로에 buildNumber.properties 파일이 생성이 될 것이고, buildnumber-maven-plugin은 해당 파일에 기록되어 있는 buildNumber를 읽어들여 숫자를 증가시킨다.

#maven.buildNumber.plugin properties file

#Thu Jun 26 16:19:05 KST 2014

buildNumber=23


자세한 방법은 다음의 URL에서 확인할 수 있다.

http://mojo.codehaus.org/buildnumber-maven-plugin/usage.html 

댓글()