티스토리 뷰
Versioning: SVN의 revision 정보를 이용하여 versioning합니다. 이 때 사용되는 revision 정보는 해당 module의 최종 revision만을 사용합니다. 때문에 전체 build를 하는 경우 각 module별로 최종 revision 정보가 다를 수 있음을 참고하시기 바랍니다.
File: trunk/pom.xml
Changes: add plugin
<plugin> <groupId>com.google.code.maven-svn-revision-number-plugin</groupId> <artifactId>maven-svn-revision-number-plugin</artifactId> <version>1.2</version> <executions> <execution> <goals> <goal>revision</goal> </goals> </execution> </executions> <configuration> <reportMixedRevisions>false</reportMixedRevisions> <reportStatus>false</reportStatus> </configuration> </plugin> |
Case1: war로 배포되는 경우 war 파일명에 version 정보를 포함. (예: billing interface)
Before1: pom.xml <finalName>billing-interface</finalName> |
After1: pom.xml <finalName>billing-interface-${workingCopyDirectory.revision}</finalName> |
Case2: war가 tar.gz로 배포되는 경우 war 파일명에 version 정보를 포함. (예: provision interface)
Before1: pom.xml <finalName>provisioning-war</finalName> Before2: assemble.xml <files> <file> <source>${project.build.directory}/provisioning-war.war </source> <outputDirectory>/</outputDirectory> </file> </files> |
After1: pom.xml <finalName>provisioning-war-${workingCopyDirectory.revision}</finalName> After2: assemble.xml <files> <file> <source>${project.build.directory}/provisioning-war-${workingCopyDirectory.revision}.war </source> <outputDirectory>/</outputDirectory> </file> </files> |
Case3: jar로 배포하여 해당 jar가 shell script에서 사용되는 경우 jar 파일명에 버전 정보가 포함되면 shell script가 변경되어야 하므로 maven-jar-plugin 설정에서 jar 파일명 대신 manifest 파일에 version 정보를 포함하도록 함. (예: sms interface)
Before1: pom.xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.2</version> <configuration> <outputDirectory>${project.build.directory} </outputDirectory> </configuration> </plugin> |
After1: pom.xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.2</version> <configuration> <outputDirectory>${project.build.directory} </outputDirectory> <archive> <manifestEntries> <version>${workingCopyDirectory.revision}</version> </manifestEntries> </archive> </configuration> </plugin> |
Case4: 실행 module이 아닌 dependency가 걸려있는 내부 jar의 경우 jar 파일명에 pom.xml의 version 정보가 이미 포함되어 있습니다. (예: rbt-common-alarm)
이 경우 정책의 문제이긴 하지만 patch가 되는 경우 version이 바뀌어야 한다면 pom.xml을 수정해서 처리하도록 합니다.
Before1: pom.xml <modelVersion>4.0.0</modelVersion> <groupId>com.real.tps.rbt3.common</groupId> <artifactId>rbt-common-alarm</artifactId> <packaging>jar</packaging> <version>1.0</version> <name>RBT Alarm API</name> |
After1: pom.xml <modelVersion>4.0.0</modelVersion> <groupId>com.real.tps.rbt3.common</groupId> <artifactId>rbt-common-alarm</artifactId> <packaging>jar</packaging> <version>1.0.1</version> <name>RBT Alarm API</name> |
http://code.google.com/p/maven-svn-revision-number-plugin
http://maven-svn-revision-number-plugin.googlecode.com/svn/site/revision-mojo.html
- Total
- Today
- Yesterday
- Kubernetes
- spring
- log4j
- SBM
- EMV
- jboss
- dump
- Dependency
- zookeeper
- ssh
- Shell
- bash
- spring boot
- monitoring
- ubuntu
- Jose
- OOP
- nodejs
- Guava
- Maven
- Java
- docker
- JSF
- svn
- SMPP
- install
- bouncycastle
- Tomcat
- Oracle
- Heap
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |