相关文章推荐
豪爽的大海  ·  VS ...·  7 月前    · 
大方的炒饭  ·  Javascript ...·  1 年前    · 

maven打包加时间戳方法总结

基于Maven的项目,发布时需要打包,如tar.gz。web项目打成war格式包。每次打包时希望自己加上时间戳,假如我的项目名是myproject,默认打包后名为myproject.war。而我希望的名字为myproject-1.0.0-20160217。方便以后对包进行查找与管理,如何实现这种效果呢?

1.使用maven自带的属性
设置时间戳格式:在pom.xml文件中加入以下配置

<properties>
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
</properties>

在打包plugin中引用该属性

<finalName>
  ${project.artifactId}-${project.version}_${maven.build.timestamp}
</finalName>

Maven自带时间戳使用${maven.build.timestamp},但是时区是UTC。
如果要使用GMT+8,就需要插件提供支持,以下两个插件可以实现。

2.使用buildnubmer-maven-plugin

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <timestampFormat>yyyyMMdd</timestampFormat>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>create-timestamp</goal>
            </goals>
        </execution>
    </executions>
    <inherited>false</inherited>
</plugin>

默认属性是timestamp,在打包plugin中引用该属性

<finalName>
${project.artifactId}-${project.version}_${timestamp}
</finalName>

3.使用build-helper-maven-plugin

   <build>
    <finalName>ProjectName-${current.time}</finalName>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.9.1</version>
            <executions>
                <execution>
                    <id>timestamp-property</id>
                    <goals>
                        <goal>timestamp-property</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <name>current.time</name>
                <pattern>yyyyMMdd-HHmmss</pattern>
                <timeZone>GMT+8</timeZone>
            </configuration>
        </plugin>
    </plugins>
</build>

将以上的几种方式配置分别加入到自己的pom.xml文件中,打个包试试,是不是自己加上了时间戳 -

mvn打包时添加日期参数maven打包时想添加日期参数,如:将"xxx.jar"打包为"xxx-yyyyMMdd.jar"这样的格式。如何实现?自Maven 2.1.0-M1版本之后,通过设置属性值: maven.build.timestamp.format指定具体的日期格式,如:&lt;project&gt;  ...  &lt;properties&gt;    &lt;maven.build.timestamp.format&gt;yyyy-MM-dd'T'HH:mm:ss'Z'&lt;/ <version>5.0.${build.time}B</version> <properties> <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format> </properties> 对资源文件开启 filtering 功能,资源文件中的 POM 变量在打包过程中会被自动替 【起因】说一下要实现的效果 女朋友最近接到手里的任务就是要将Maven打的包设置成xxx-2021209252204.jar,因为是springboot项目,网上的例子其实有很多。 开始时使用了maven的时间插件,直接在properties标签中入时间格式的设置,如下: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <executions> <!--指定时间格式--> <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format> <!--maven.build.timestamp保存了maven编译时间戳--& <properties> <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format> </prop... 团队其他成员(例如:小明)维护了一个公用的 jar ,例如:com.jar ,在他的 pom 中 com 的 version 有 SNAPSHOT,例如:<version>0.0.1-SNAPSHOT</version>; 然后当别人使用小明维护的 com.jar 时,dependency 的version 和小明写的一样<version>0.0.1-SNAPSHOT</vers
Maven 是一个非常常用的 Java 项目构建工具,使用 Maven 打包 jar 可以方便地将项目打包成一个可执行的 Jar 包,使得项目的发布、部署等工作变得轻松快捷。下面我将详细介绍如何使用 Maven 打包 jar。 首先,需要确保电脑上已经安装了 Maven。在安装好 Maven 之后,可以使用 Maven 的命令行工具进行操作。进入到要打包的项目的根目录下,执行以下命令: ```bash mvn clean package 其中 `clean` 表示删除之前编译的类和 jar 文件,`package` 表示将项目打包成一个 jar 文件。 在执行命令之后,Maven 会自动编译项目代码,将编译好的类文件和依赖的库文件打包成一个 jar 文件,并将其放置在项目的 `target` 文件夹下。 在这个过程中,如果项目依赖的库没有被安装到本地仓库或中央仓库中,Maven 会自动从中央仓库或其他配置好的仓库下载并安装这些依赖库。 如果需要指定 jar 文件的名称和路径,可以在 `pom.xml` 文件中进行配置。在 `build` 标签中添以下代码: ```xml <finalName>${project.artifactId}-${project.version}</finalName> <outputDirectory>./target</outputDirectory> 其中 `finalName` 指定了 jar 文件的名称,`${project.artifactId}` 表示项目的名称,`${project.version}` 表示项目的版本号;`outputDirectory` 指定了 jar 文件输出的目录。 除了使用命令行打包 jar,也可以在 Maven 的开发工具中(如 Eclipse、IntelliJ IDEA 等)直接使用打包插件进行操作。 总之,使用 Maven 打包 jar 是一个非常便捷的操作,可以方便地将项目打包成一个可执行的 Jar 包,并将其部署到不同的环境中。