티스토리 뷰

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>

<url>http://maven.apache.org</url>

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>

<url>http://maven.apache.org</url>

 

http://code.google.com/p/maven-svn-revision-number-plugin

http://maven-svn-revision-number-plugin.googlecode.com/svn/site/revision-mojo.html

http://code.google.com/p/maven-timestamp-plugin

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/07   »
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
글 보관함