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} 替换为时间戳,每次发布版本的时候,也不用去清除浏览器的缓存了。
Maven构建war项目添加版本号的更多相关文章
- 01 Maven构建的项目中,把.xml等配置文件添加到编译目录
Maven构建的项目,默认只会把src/main/resources目录下的xml配置文件添加到编译目录. 如果需要把src/main/java目录下的xml配置文件也添加到编译目录,需要在pom.x ...
- Maven学习:Eclipse使用maven构建web项目(转)
Maven学习:Eclipse使用maven构建web项目(转) 8.更改class路径:右键项目,Java Build Path -> Source 下面应该有4个文件夹.src/main/j ...
- maven构建java项目、web项目
maven构建java项目.web项目 一.mvn构建web项目 1安装mvn(包括path) 2命令:mvn archetype:create -DgroupId=cn.edu.sdau.neat ...
- 使用Maven构建Android项目
http://www.ikoding.com/build-android-project-with-maven/ 之前一直在做WEB前端项目,前段时间接手第一个Android项目,拿到代码之后,先试着 ...
- 利用Eclipse中的Maven构建Web项目(三)
利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.依据Dynamic W ...
- 利用Eclipse中的Maven构建Web项目报错(二)
利用Eclipse中的Maven构建Web项目 1.错误描述 [INFO] Scanning for projects... [INFO] [INFO] Using the builder org.a ...
- 利用Eclipse中的Maven构建Web项目报错(一)
利用Eclipse中的Maven构建Web项目 1.在进行上述操作时,pom.xml一直报错 <project xmlns="http://maven.apache.org/POM/4 ...
- JAVA Eclipse使用Maven构建web项目详解(SSM框架)
tips: 启动项目后,welcome-file的链接即为测试用例 部署maven web项目 Eclipse使用Maven构建web项目详解 pom.xml添加webapp依赖: <depen ...
- maven构建web项目,用jetty测试的配置pom.xml
maven构建web项目,用jetty测试的配置pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmln ...
随机推荐
- Delphi_按字节比较两个文件
1.界面 2.代码 procedure TForm1.btnSelectFile01Click(Sender: TObject); begin if OpenDialog1.Execute then ...
- JNI_C#
1. 基本就是 通过 JAVA --> C/C++ --> C#的DLL 2. (1).自己写 JNI与 C#的DLL 通信 http://www.cnblogs.com/yinhaimi ...
- review12
使用StringTokenizer对象分解字符串,和split()不同的是,StringTokenizer对象不使用正则表达式作为分隔标记. 当Fenix一个字符串并将字符串分解成可被独立使用的单词时 ...
- ajax_基础
ajax 请求过程 1.准备发送请求 2.填写请求地址和数据 3.请请求到服务器 4.等待服务器处理数据. 5.接受服务器返回信息 --------------------------------- ...
- c++primer 第二章编程练习答案
2.7.1 #include<iostream> int main() { using namespace std; ]; ]; cout << "input nam ...
- Two Cakes
It's New Year's Eve soon, so Ivan decided it's high time he started setting the table. Ivan has boug ...
- 自定义Django Command
转: django的command命令是要放在一个app的management/commands目录下.python2环境中,请确保management和management/commands目录内都 ...
- C# partial 说明(转)
http://www.cnblogs.com/Echo_saq/archive/2012/11/19/2777058.html 1. 什么是局部类型? C# 2.0 引入了局部类型的概念.局部类型允许 ...
- 转载 VC轻松解析XML文件 - CMarkup类的使用方法
VC轻松解析XML文件 - CMarkup类的使用方法http://www.cctry.com/thread-3866-1-1.html VC解析XML文件的工具有很多,CMarkup, tinyXM ...
- flask之Jinja2
Jinja2 is a library found at http://jinja.pocoo.org/; you can use it to produce formatted text with ...