maven 빌드 시 war 파일에 buildNumber 추가
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
'개발툴' 카테고리의 다른 글
Git stash 기능 (0) | 2014.07.28 |
---|---|
javascript 빨간 X표시 안보이게 하기 (2) | 2014.07.16 |
Shared workspace plugin 설정 (0) | 2014.07.01 |
이클립스 Open Resource 창에서 특정 파일 및 폴더 제외 방법 (473) | 2014.06.27 |
Eclipse Deployment Assembly 설정 주의사항 (메이븐 프로젝트인 경우) (0) | 2014.06.19 |
third party library 사설 리포지토리 없이 dependency 추가하기 (1) | 2014.06.02 |
maven 빌드 시 tld 파일 jar에 포함시키기 (0) | 2014.05.26 |
오류 Cannot change version of project facet Dynamic Web Module to 2.5. (17) | 2014.05.21 |