SILENTSOFT
Published on

Maven 빌드 할 때 시간 가져오기

Authors

Maven 빌드 할 때 시간을 가져와서 사용해야 하는 경우가 종종 있다. 이때, pom.xml에서 ${maven.build.timestamp}를 사용하면 된다.

다만 필자의 경험에 의하면 일반적인 경우 Maven의 timestamp는 "yyyyMMdd-HHmm"과 같이 되지만, 이클립스의 버전에 따라 포맷이 달라진다.

빌드 할 때 마다 버전과 빌드 시간 정보를 파일이나 클래스로 생성하여 업데이트 비즈니스로 사용하는 경우라면 꽤나 골치 아파지게 된다.

이럴 때에는 pom.xml의 properties에 아래와 같이 속성을 지정하면 된다.

<properties>
    <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
    <buildtime>${maven.build.timestamp}</buildtime>
    ...
</properties>

또, 이클립스의 버전에 따라 한국의 TimeZone인 GMT+9 적용이 안되는 경우가 생길 수 있다. (어떤 환경에서는 UTC로 적용되고, 또 어떤 환경에서는 빌드 머신의 TimeZone이 적용된다. 거참....)

이럴 때에는 properties 지정 없이 아래처럼 build-helper-maven-plugin 플러그인만으로 해결할 수 있다.

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.11</version>
    <executions>
        <execution>
            <id>timestamp-property</id>
            <goals>
                <goal>timestamp-property</goal>
            </goals>
            <configuration>
                <name>buildtime</name> <!-- Usage : ${buildtime} -->
                <pattern>yyyyMMdd-HHmmss</pattern>
                <timezone>GMT+9</timezone>
            </configuration>
        </execution>
    </executions>
</plugin>