文档章节

maven项目管理

小小小七
 小小小七
发布于 2014/11/10 09:18
字数 1468
阅读 131
收藏 8
点赞 0
评论 0

1、添加SCM

首先我们需要在POM中加入scm信息,这样Maven才能够替你完成svn操作,这里我的配置如下:

Xml代码  :


2、配置maven-release-plugin

这个插件会帮助我们升级pom版本,提交,打tag,然后再升级版本,再提交,等等。基本配置如下:

xml代码  :

这里我们需要注意的是configuration元素下的tagBase元素,它代表了我们svn中的tag目录,也就是说,maven-release-plugin帮我们打tag的时候,其基础目录是什么。


3、注意事项

确保你的所有代码都提交了,如果你有未提交代码,release插件会报错,既然你要发布版本了,就表示代码是稳定的,所以要么要么把代码提交了,要么把本地的更改抛弃了。


4、开始执行第一个命令

D:\workspace\webapp>mvn release:prepare

[INFO] Scanning for projects...

[INFO]

[INFO] ------------------------------------------------------------------------

[INFO] Building webappName Maven Webapp 1.6-SNAPSHOT

[INFO] ------------------------------------------------------------------------

[INFO]

[INFO] --- maven-release-plugin:2.0-beta-7:prepare (default-cli) @ webappName --

-

[INFO] Release preparation already completed. You can now continue with release:

perform, or start again using the -Dresume=false flag

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 0.860 s

[INFO] Finished at: 2014-11-09T22:53:30+08:00

[INFO] Final Memory: 2M/5M

[INFO] ------------------------------------------------------------------------

上面信息可以看出我当前的版本为1.6-SNAPSHOT,并且版本的准备已经完成。

并且还提示我,接下来可以继续执行的命令为:

release:perform (进行项目的发布) 或者 重新再来准备一次使用-Dresume=false




发布先不管,运行

D:\workspace\webapp>mvn release:prepare -Dresume=false

[INFO] Scanning for projects...

[INFO]

[INFO] ------------------------------------------------------------------------

[INFO] Building webappName Maven Webapp 1.6-SNAPSHOT

[INFO] ------------------------------------------------------------------------

[INFO]

[INFO] --- maven-release-plugin:2.0-beta-7:prepare (default-cli) @ webappName --

-

[INFO] Verifying that there are no local modifications...

[INFO] Executing: svn --non-interactive status

[INFO] Working directory: D:\workspace\webapp

[INFO] Checking dependencies and plugins for snapshots ...

What is the release version for "webappName Maven Webapp"? (packageName:webappNa

me) 1.6: :

你想将1.6-SNAPSHOT发布为什么版本?默认是1.6。”我要的就是1.6,直接回车。

What is SCM release tag or label for "webappName Maven Webapp"? (packageName:web

appName) webappName-1.6: :

发布的tag标签名称是什么?默认为webappName-1.6。”我还是要默认值,直接回车。

What is the new development version for "webappName Maven Webapp"? (packageName:

webappName) 1.7-SNAPSHOT: :

主干上新的版本是什么?默认为1.7-SNAPSHOT。”哈,release插件会自动帮我更新版本到1.7-SNAPSHOT,很好,直接回车。


[INFO] Transforming 'webappName Maven Webapp'...

[INFO] Not generating release POMs

[INFO] Executing goals 'clean verify'...

[INFO] Executing: mvn clean verify --no-plugin-updates -P center

[WARNING] Command line option -npu is deprecated and will be removed in future M

aven versions.

        [INFO] Scanning for projects...

        [INFO]

        [INFO] -----------------------------------------------------------------

-------

        [INFO] Building webappName Maven Webapp 1.6

        [INFO] -----------------------------------------------------------------

-------

        [INFO]

        [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ webappName ---

        [INFO] Deleting D:\workspace\webapp\target

        [INFO]

        [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ we

bappName ---

        [WARNING] Using platform encoding (GBK actually) to copy filtered resour

ces, i.e. build is platform dependent!

        [INFO] Copying 0 resource

        [INFO]

        [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ webappN

ame ---

        [INFO] No sources to compile

        [INFO]

        [INFO] --- maven-resources-plugin:2.6:testResources (default-testResourc

es) @ webappName ---

        [WARNING] Using platform encoding (GBK actually) to copy filtered resour

ces, i.e. build is platform dependent!

        [INFO] skip non existing resourceDirectory D:\workspace\webapp\src\test\

resources

        [INFO]

        [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @

 webappName ---

        [INFO] No sources to compile

        [INFO]

        [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ webappName

 ---

        [INFO] No tests to run.

        [INFO]

        [INFO] --- maven-war-plugin:2.2:war (default-war) @ webappName ---

        [INFO] Packaging webapp

        [INFO] Assembling webapp [webappName] in [D:\workspace\webapp\target\web

appName]

        [INFO] Processing war project

        [INFO] Copying webapp resources [D:\workspace\webapp\src\main\webapp]

        [INFO] Webapp assembled in [44 msecs]

        [INFO] Building war: D:\workspace\webapp\target\webappName.war

        [INFO] WEB-INF\web.xml already added, skipping

        [INFO] -----------------------------------------------------------------

-------

        [INFO] BUILD SUCCESS

        [INFO] -----------------------------------------------------------------

-------

        [INFO] Total time: 2.754 s

        [INFO] Finished at: 2014-11-09T23:04:31+08:00

        [INFO] Final Memory: 4M/9M

        [INFO] -----------------------------------------------------------------

-------

        [INFO] Checking in modified POMs...

[INFO] Executing: svn --non-interactive commit --file C:\Users\ADMINI~1\AppData\

Local\Temp\maven-scm-375208472.commit --targets C:\Users\ADMINI~1\AppData\Local\

Temp\maven-scm-5511113549166271924-targets

[INFO] Working directory: D:\workspace\webapp

[INFO] Tagging release with the label webappName-1.6...

[INFO] Executing: svn --non-interactive copy --file C:\Users\ADMINI~1\AppData\Lo

cal\Temp\maven-scm-258074596.commit . http://WOP8UNUZM6ZBE4H/svn/webapp/tags/web

appName-1.6

[INFO] Working directory: D:\workspace\webapp

[INFO] Transforming 'webappName Maven Webapp'...

[INFO] Not removing release POMs

[INFO] Checking in modified POMs...

[INFO] Executing: svn --non-interactive commit --file C:\Users\ADMINI~1\AppData\

Local\Temp\maven-scm-1222592472.commit --targets C:\Users\ADMINI~1\AppData\Local

\Temp\maven-scm-2494449146640843872-targets

[INFO] Working directory: D:\workspace\webapp

[INFO] Release preparation complete.

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 04:34 min

[INFO] Finished at: 2014-11-09T23:04:34+08:00

[INFO] Final Memory: 2M/5M

[INFO] ------------------------------------------------------------------------


执行成功后pom配置从原来的1.6版本被更新到了1.7

svn服务器上tag添加了1.6版本的信息

项目根目录生成了2新文件

pom.xml.releaseBackup 原来pom文件的备份(版本回滚需要

release.properties前后两版本的关联信息(版本回滚需要


5、发布准备 批量模式执行

还是之前的那个命令就添加2参数

D:\workspace\webapp>mvn --batch-mode release:prepare -Dresume=false

6、项目回滚

前提条件:上一次发布到这次回滚之间没有执行过

mvn release:clean

这个命令。因为这个命令会把前面提到的2文件删除,导致无法回滚

pom.xml.releaseBackup 原来pom文件的备份(版本回滚需要

release.properties前后两版本的关联信息(版本回滚需要

回滚命令

mvn release:rollback
D:\workspace\webapp>mvn release:rollback
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building webappName Maven Webapp 1.8.2-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-release-plugin:2.0-beta-7:rollback (default-cli) @ webappName
--
[INFO] Checking in modified POMs...
[INFO] Executing: svn --non-interactive commit --file C:\Users\ADMINI~1\AppData
Local\Temp\maven-scm-1383801082.commit --targets C:\Users\ADMINI~1\AppData\Loca
\Temp\maven-scm-3876567308953457412-targets
[INFO] Working directory: D:\workspace\webapp
[INFO] Cleaning up after release...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.453 s
[INFO] Finished at: 2014-11-09T23:46:03+08:00
[INFO] Final Memory: 3M/6M
[INFO] ------------------------------------------------------------------------
回滚后版本号从原来的
1.8.2-SNAPSHOT
变成现在的:

而且根路径下的2文件被删除

pom.xml.releaseBackup 原来pom文件的备份(版本回滚需要

release.properties前后两版本的关联信息(版本回滚需要


在看一下svn服务器tag目录

1.8.1版本还在,说明回滚的时候只是项目中的版本回滚了,但是之前的打的tag没有被删除。。。。

我们可以看到回滚的局限性:
1、只能回滚到上一个版本
2、tag没被删除,需要自己手动的删除
http://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html
http://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html


执行mvn --batch-mode release:prepare -Dresume=false 前必须先执行
mvn --batch-mode release:prepare
执行
mvn --batch-mode release:prepare前必须先执行
mvn release:rollback


© 著作权归作者所有

共有 人打赏支持
小小小七
粉丝 7
博文 30
码字总数 10918
作品 0
南平
【Maven】项目管理利器Maven——前言小序

一、前言 可以说,现在很多的项目管理工具都使用了Maven,学习一下Maven,了解一些Maven相关的命令还是很有必要的。在下面的几篇博客中,小编从下面几个方面向大家介绍Maven: 二、目录结构 ...

kisscatforever ⋅ 01/15 ⋅ 0

如何修改Maven的JDK版本

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。 工具/原料 Maven ...

ruanjun ⋅ 2016/11/05 ⋅ 0

Maven学习网站

Maven学习网站推荐 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级...

马马来 ⋅ 2014/02/08 ⋅ 0

你应该升级到 Maven 3 的 10 个理由

来自国外博客发布了一批名为升级到 Maven 3 的 10 个理由,查看原文: http://www.sonatype.com/people/2011/02/top-ten-reasons-to-move-to-maven-3/ Maven是基于项目对象模型(POM),可以通...

红薯 ⋅ 2011/02/25 ⋅ 2

Ant与maven的区别

Ant是软件构建工具,Maven的定位是软件项目管理和理解工具。Maven除了具备Ant的功能外,还增加了以下主要的功能: 1)使用Project Object Model来对软件项目管理; 2)内置了更多的隐式规则,...

孟飞阳 ⋅ 2016/06/22 ⋅ 0

Win7下安装maven3.3.3步骤详细

安装步骤:1、安装maven之前,确保已经安装JDK1.6及以上版本,并配置好环境变量。2、下载maven3,最新版本是Maven3.3.3 ,下载地址:http://maven.apache.org/download.cgi3、下载apache-ma...

afreon ⋅ 2016/10/08 ⋅ 0

项目管理: Maven 让事情变得简单

目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为 的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项...

hkm ⋅ 2012/06/06 ⋅ 0

项目构建工具--Maven

开源中国的 Maven 库 http://maven.oschina.net 目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为make的替代工具)不能满足绝大多数开...

匿名 ⋅ 2008/09/07 ⋅ 37

Maven的安装和配置(一)

最近开始学习Maven,看了一些视频教学,以及许晓斌著的《Maven实战》,所以写下一些博客记录自己学习的知识以及自己的总结。 1. Maven简介 Maven是一个采用纯Java编写的开 源项目管理工具。M...

半夏alvin ⋅ 2013/11/20 ⋅ 0

开放持续集成平台--OpenCI

OpenCI 提供项目向导式创建、导入,集成版本控制(GIT/SVN)、项目管理(Trac/Redmine)、代码质量(Sonar)、持续集成(Jenkins)等工具,用于规范化项目管理。 为什么使用OpenCI: 向导式创建、导入...

Koala_考拉 ⋅ 2014/05/04 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Day 17 vim简介与一般模式介绍

vim简介 vi和Vim的最大区别就是编辑一个文件时vi不会显示颜色,而Vim会显示颜色。显示颜色更便于用户编辑,凄然功能没有太大的区别 使用 yum install -y vim-enhanced 安装 vim的三种常用模式...

杉下 ⋅ 54分钟前 ⋅ 0

【每天一个JQuery特效】根据可见状态确定是否显示或隐藏元素(3)

效果图示: 主要代码: <!DOCTYPE html><html><head><meta charset="UTF-8"><title>根据可见状态确定 是否显示或隐藏元素</title><script src="js/jquery-3.3.1.min.js" ty......

Rhymo-Wu ⋅ 今天 ⋅ 0

OSChina 周四乱弹 —— 初中我身体就已经垮了,不知道为什么

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @加油东溪少年 :下完这场雨 后弦 《下完这场雨》- 后弦 手机党少年们想听歌,请使劲儿戳(这里) @马丁的代码 :买了日本 日本果然赢了 翻了...

小小编辑 ⋅ 今天 ⋅ 12

浅谈springboot Web模式下的线程安全问题

我们在@RestController下,一般都是@AutoWired一些Service,由于这些Service都是单例,所以并不存在线程安全问题。 由于Controller本身是单例模式 (非线程安全的), 这意味着每个request过来,...

算法之名 ⋅ 今天 ⋅ 0

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部