이 기사에서는 Maven 플러그인을 사용하여 자동으로 Version.java
클래스를 생성하고, Java 코드에서 해당 상수를 사용하여 현재 버전 번호와 빌드 시간을 얻을 수 있습니다.
컴파일 후 Maven이 자동으로 생성한 파일의 내용은 Version.java
다음과 같습니다.
package com.shanhy.demo;
public final class Version {
public static String NUMBER = "0.0.41-SNAPSHOT";
public static String BUILD_TIME = "2023-08-15 10:54:16";
}
pom.xml의 플러그인 사용 예는 다음과 같습니다.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.4.0</version>
<executions>
<execution>
<id>timestamp-property</id>
<goals>
<goal>timestamp-property</goal>
</goals>
<configuration>
<name>current.time</name>
<pattern>yyyy-MM-dd HH:mm:ss</pattern>
<timeZone>GMT+8</timeZone>
<locale>zh_CN</locale>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<goals>
<goal>run</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<target>
<property name="src.dir" value="${project.build.sourceDirectory}"/>
<property name="package.dir" value="com/shanhy/demo"/>
<property name="package.name" value="com.shanhy.demo"/>
<!--maven.build.timestamp是UTC时间,跟北京时间有8个小时的时差,
使用插件 build-helper-maven-plugin:timestamp-property 解决这个时差问题-->
<!--<property name="buildtime" value="${maven.build.timestamp}"/>-->
<property name="buildtime" value="${current.time}"/>
<!--生成一个 Version.java 文件,里面生成常量,可以在Java代码中直接使用-->
<echo file="${src.dir}/${package.dir}/Version.java"
message="package ${package.name};${line.separator}${line.separator}"/>
<echo file="${src.dir}/${package.dir}/Version.java" append="true"
message="public final class Version {${line.separator}"/>
<echo file="${src.dir}/${package.dir}/Version.java" append="true"
message=" public static String NUMBER = "${project.version}";${line.separator}"/>
<echo file="${src.dir}/${package.dir}/Version.java" append="true"
message=" public static String BUILD_TIME = "${buildtime}";${line.separator}"/>
<echo file="${src.dir}/${package.dir}/Version.java" append="true"
message="}${line.separator}"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
이 방법을 이용하면 version.properties 등의 일반 버전 구성 파일을 생성할 수도 있는데, 위에서 생성한 java 파일은 관련 업무의 상수를 Java 코드에서 직접 사용하기 위한 것입니다.
(끝)