maven 의 finalName 을 명령행에서 변경 하기
버전 관리를 git 으로 변경하고 뱀부의 브랜치 자동 빌드 기능을 이용하여 java web app 의 빌드와 디플로이를 자동으로 하려고 한다.
브랜치마다 별도의 web app context 를 만들고 싶은데 이렇게 하려면 매번 maven 의 pom 파일에 finalName 을 변경해야 한다.
command line 에서 finalName 이나 기타 maven 의 property 를 변경하려면 다음과 같이 할수 있다.
pom.xml 의 finalName 을 프로퍼티를 사용하도록 변경. maven의 기본 finalName은 ${project.artifactId}-${project.version} 이다.
<groupId>com.example</groupId> <artifactId>test-web-app</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <properties> <finalName>${project.artifactId}</finalName> </properties> <build> <finalName>${finalName}</finalName> </build>
maven 을 수행할 때 -DfinalName=new-artifact 로 지정하여 실행하면 target 폴더에 new-artifact.war 로 생성이 된다.
mvn package -DfinalName=new-artifact ## target/new-artifact.war 생성
옵션없이 maven 을 실행하면 기본 finalName인 test-web-app.war 로 생성된다.
mvn package -DfinalName=test-web-app
bamboo 를 사용한다면 Bamboo variables 사용 하여 브랜치명으로 finalName 을 생성할 수 있다. git의 브랜치명은 bamboo.repository.git.branch 변수에 설정된다.
mvn package -DfinalName=${bamboo.repository.git.branch}
- bamboo 에서 바로 tomcat 에 deploy 하려면 WAR FIle 항목에 아래처럼 변수명을 설정하면 변경된 war 를 참조한다.