Maven构建war项目添加版本号

  上午接到一个新的需求,项目的war包打包之后,放在了阿里的OSS上,供其他项目下载更新时使用,但是只有一个项目名,也就是pom的artifactId,预期的结果是要加上一个版本号,能区分出是什么时候打的包。

一、使用Maven自带的属性

<properties>

<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>

</properties>
<!-- war打包插件, 设定war包名称带版本号 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <warName>${project.artifactId}_${maven.build.timestamp}</warName>
                    <webResources>
                        <resource>
                            <directory>src/main/webapp</directory>
                            <includes>
                                <include>*.*</include>
                                <include>**/*.*</include>
                            </includes>
                            <filtering>true</filtering>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

按照以上配置,版本号可以加上,年月日也是正确的,但是时分秒是对不上的,这是时区问题,maven取得是UTC ,如果想使用北京时间GMT+8 则需要插件支持

二、使用插件

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

在需要使用版本号的地方直接使用${timestamp}

<!-- war打包插件, 设定war包名称带版本号 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <warName>${project.artifactId}_${timestamp}</warName>
                    <webResources>
                        <resource>
                            <directory>src/main/webapp</directory>
                            <includes>
                                <include>*.*</include>
                                <include>**/*.*</include>
                            </includes>
                            <filtering>true</filtering>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

配置完成!打包符合要求。

三、扩展使用-静态资源文件版本控制

在 二 的基础上加自定义属性

<properties>
        <project.build.version>${timestamp}</project.build.version>
    </properties>

页面中的引用

*.[js|css|img]?v=${project.build.version}

注意:war包插件必须要先开启过滤

<filtering>true</filtering>

这样maven打包的时候,就会将${project.build.version} 替换为时间戳,每次发布版本的时候,也不用去清楚浏览器的缓存了。

原文地址:https://www.cnblogs.com/geekdc/p/9317463.html

时间: 2024-10-13 08:47:33

Maven构建war项目添加版本号的相关文章

Eclipse使用Maven构建web项目

Eclipse使用Maven构建web项目 博客分类: J2EE 1.创建Maven项目: 点击“File”菜单,或者通过工具栏的“New”创建Project,如下图所示: 选择Maven->Maven Project,弹出向导对话框,如下图所示: 选中Create a simple project……复选框,其它的设置不变,并点击Next,输入maven项目必须的信息(groupId,artifactid,version),如下图所示: 这里需要选择Packaging,web项目一般选择war

使用maven构建web项目

maven安装 1) 下载Maven:http://maven.apache.org/download.html 2) 解压缩下载的zip文件到本地目录下,比如:D:\Maven 3) 添加D:\Maven\bin到环境变量PATH中 4) 在命令行下运行mvn -version  或者 mvn –v查看是否安装成功 5) 安装eclipse插件 Eclipse Marketplace中搜索Maven Integration for Eclipse WTP并下载 为了使得Eclipse中安装的M

Maven的学习资料收集--(四)使用Maven构建Web项目-测试

2014-08-04 23:21 2人阅读 评论(0) 收藏 编辑 删除 目录(?)[+] [-] 在srcmainjava下新建一个Servlet 修改webxml 新建JSP 测试 在上一篇博客里,我们使用Maven构建了一个Web项目,我们在这里写一个简单的Servlet,测试一下. 1.在src/main/java下,新建一个Servlet [java] view plaincopyprint? <span style="font-weight: normal;">

利用Eclipse中的Maven构建Web项目(三)

利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.根据Dynamic Web Module的版本修改Java Compiler中的"Compiler compliance level"的版本 3.设置部署程序集(Web Deployment Assembly),删除含有"test" 4.将Maven的jar包发布到lib下, "A

利用Eclipse中的Maven构建Web项目报错

利用Eclipse中的Maven构建Web项目 1.在进行上述操作时,pom.xml一直报错 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.o

Maven构建JavaWeb项目 Maven转JavaWeb项目 JavaWeb项目转Maven项目

Maven构建JavaWeb项目 新建一个maven项目 (默认) 默认 转为Web项目,右击项目属性 转完以后多了文件夹WebContent,将WebContent下的WEB-INF.META-INF文件夹copy到src/main/webapp目录下(没有目录新建个文件夹),并且删除WebContent目录 右击项目属性 将/WebContent删除,添加新的路径和依赖 添加依赖 就可以新建一个index.jsp 部署到tomcat测试了 JavaWeb项目转为Maven项目 选中此工程 -

利用Eclipse中的Maven构建Web项目报错(二)

利用Eclipse中的Maven构建Web项目 1.错误描写叙述 [INFO] Scanning for projects... [INFO] [INFO] Using the builder org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder with a thread count of 1 [INFO] [INFO] ---------------------------------

Maven的学习资料收集--(三)使用Maven构建Web项目

新建Maven项目 File - New - Other 选择Maven Project 单击Next 保持默认即可单击Next 选择Archetype为 web app单击Next 输入一些必要信息单击Finish 项目结构如下图 配置项目 在项目上右键单击添加Source Folder 修改Build Path 配置 将项目转换为Dynamic Web Project 设置部署程序集Web Deployment Assembly 从网上查了一些资料,才算明白(也就是怎么操作吧),怎么使用Ma

使用Maven构建Android项目

http://www.ikoding.com/build-android-project-with-maven/ 之前一直在做WEB前端项目,前段时间接手第一个Android项目,拿到代码之后,先试着run起来再说,导入eclipse,一堆错误,设置classpath依赖,折腾半天,还是编译错误,于是联系项目接口人,得知他有一个Android库项目没有提交到SVN,晕... 对于习惯使用Maven管理Java项目的我来说,自然想到能否用Maven构建Android项目呢?于是开始Google.百