Maven 生成编译时间和版本Java类

这篇具有很好参考价值的文章主要介绍了Maven 生成编译时间和版本Java类。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文使用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 = &quot;${project.version}&quot;;${line.separator}"/>
                    <echo file="${src.dir}/${package.dir}/Version.java" append="true"
                          message="    public static String BUILD_TIME = &quot;${buildtime}&quot;;${line.separator}"/>
                    <echo file="${src.dir}/${package.dir}/Version.java" append="true"
                          message="}${line.separator}"/>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

你也可用这种方法生成普通的版本配置文件,例如 version.properties,上文生成 java 文件是为了在 Java 代码中的相关业务中直接使用常量。


(END)文章来源地址https://www.toymoban.com/news/detail-657424.html

到了这里,关于Maven 生成编译时间和版本Java类的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java升级JDK17(更高版本同理),修改maven

    记住三个网址就行:下面这个是oracle的 Java Platform, Standard Edition 17 ReferenceImplementations https://www.oracle.com/java/technologies/downloads/#jdk17-windows 另外一个 redhat旗下的:这个是开源的(推荐这个!) Red Hat build of OpenJDK Download | Red Hat Developer 找到想要的版本下载即可 注意:JDK9的时候,

    2024年02月11日
    浏览(54)
  • 【springboot-maven项目,java: 错误: 不支持发行版本】

    运行时报如下错误的信息: 图1:pom.xml里面的jdk与图2:框架设置的引用jdk不一致导致。 (创建springboot项目时,选用的jdk版本为21,而后续不小心修改了框架的jdk版本为11) 图1 图2:File Project Structure Modules 因为创建此项目时原因使用的是jdk21,所以将图二的jdk11改为jdk21,使其一

    2024年02月03日
    浏览(47)
  • SpringBoot版本与Spring、java、maven、gradle版本对应汇总(1->3版本,收藏一波)

    Spring Boot 3.1.x Spring Boot 3.0.x Spring Boot 2.7.x Spring Boot 2.6.x Spring Boot 2.5.x Spring Boot 2.4.x Spring Boot 2.3.x Spring Boot 2.2.x Spring Boot 2.1.x Spring Boot 2.0.x Spring Boot 1.5.x   Spring Boot 1.4.x  Spring Boot 1.3.x   Spring Boot 1.2.x  

    2024年02月03日
    浏览(44)
  • Selenium+Java+Maven(12):引入Allure作为报告生成器

    本篇作为Selenium+Java系列的补充,讲了如何使用Allure作为测试报告生成器,来替代TestNG自带的测试报告或ReportNG测试报告,生成更加美观的(领导更喜欢的)测试报表。话不多说,一起来学习吧~ 【1】安装及环境变量配置 需要先在本机安装一个Allure,并配置好环境变量。 下载

    2024年02月07日
    浏览(41)
  • 关于使用maven构建的项目IDEA提示:java: 错误: 不支持发行版本 5

    出现这个问题的主要原因是在maven中没有配置你所需要的jdk版本。解决方案有两种, 方案一:在IDEA中修改编译的jdk版本,需要修改多处,比较复杂,这里不赘述了。 方案二:直接在Maven中配置需要的jdk版本,然后刷新一下Maven就能解决 以上代码是java17,修改成你需要的jdk版本

    2024年02月07日
    浏览(67)
  • Maven编译java及解决程序包org.apache.logging.log4j不存在问题

    1、首先新建一个文件夹,比如hello Hello里新建pom.xml 注意上面dependencies部分用于解决程序包org.apache.logging.log4j不存在问题,即 Maven编译java及解决程序包org.apache.logging.log4j不存在问题 和文件夹srcmainjava java里新建Exploit.java和LogTest.java Exploit.java LogTest.java 2、然后使用meve compile编

    2024年02月10日
    浏览(46)
  • 错误-maven工程,程序包org.apache.commons.xxx不存在,Java:不支持发行版本5

    因为最新的idea界面中文支持较好,就更新了idea,但是发现在导入以前的项目时报了两个错误 程序包org.apache.commons.xxx不存在, Java:不支持发行版本5 那就逐个解决一下 原因就一个,从Java 9开始,以后的编译器无法再生成Java 5二进制文件 Java及其虚拟机高度向后兼容,可以使

    2024年02月01日
    浏览(66)
  • Spring Boot各版本与Java版本的对应兼容关系,与构建工具(Maven、Gradle)版本的对应兼容关系,对servlet 容器的支持

    by:垃圾程序员 当前文章具有时效性,在当前springboot的版本下做的整合。之后大家视情况可以直接到Spring的官网查看 Spring | Home Level up your Java code and explore what Spring can do for you. https://spring.io/ 下面是Spring Boot各个版本的支持时间 下面是Spring Boot 推荐使用的各个版面,并标注出

    2024年02月10日
    浏览(53)
  • springboot+maven插件调用mybatis generator自动生成对应的mybatis.xml文件和java类

    mybatis最繁琐的事就是sql语句和实体类,sql语句写在java文件里很难看,字段多的表一开始写感觉阻力很大,没有耐心,自动生成便成了最称心的做法。自动生成xml文件,dao接口,实体类,虽一直感觉不太优雅,但省去了很多麻烦,当表增加或修改字段的时候重新生成便轻松搞

    2024年02月14日
    浏览(41)
  • IDEA编译报错:maven-resources-production:guyi-admin: java.lang.IndexOutOfBoundsException: Range [-1, -1 +

    编译项目的时候,IDEA一直提示:maven-resources-production:xxxxxx: java.lang.IndexOutOfBoundsException: Range [-1, -1 + 1025) out of bounds for length 1024, 清除缓存、maven clean、重新编译都不行。后面终于找到原因,在我项目中有个 docx 文件在wps中打开了一直没有关闭……

    2024年02月03日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包