博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
maven 快照
阅读量:5174 次
发布时间:2019-06-13

本文共 3775 字,大约阅读时间需要 12 分钟。

大型应用软件一般由多个模块组成,一般它是多个团队开发同一个应用程序的不同模块,这是比较常见的场景。例如,一个团队正在对应用程序的应用程序,用户界面项目(app-ui.jar:1.0) 的前端进行开发,他们使用的是数据服务工程 (data-service.jar:1.0)。

现在,它可能会有这样的情况发生,工作在数据服务团队开发人员快速地开发 bug 修复或增强功能,他们几乎每隔一天就要释放出库到远程仓库。

现在,如果数据服务团队上传新版本后,会出现下面的问题:

  • 数据服务团队应该发布更新时每次都告诉应用程序UI团队,他们已经发布更新了代码。

  • UI团队需要经常更新自己 pom.xml 以获得更新应用程序的版本。

为了处理这类情况,引入快照的概念,并发挥作用。

什么是快照?

快照(SNAPSHOT )是一个特殊版本,指出目前开发拷贝。不同于常规版本,Maven 每生成一个远程存储库都会检查新的快照版本。

现在,数据服务团队将在每次发布代码后更新快照存储库为:data-service:1.0-SNAPSHOT 替换旧的 SNAPSHOT jar。

快照与版本

在使用版本时,如果 Maven 下载所提到的版本为 data-service:1.0,那么它永远不会尝试在库中下载已经更新的版本1.0。要下载更新的代码,data-service的版本必须要升级到1.1。

在使用快照(SNAPSHOT)时,Maven会在每次应用程序UI团队建立自己的项目时自动获取最新的快照(data-service:1.0-SNAPSHOT)。

app-ui pom.xml

app-ui 项目使用数据服务(data-service)的  1.0-SNAPSHOT 

4.0.0
app-ui
app-ui
1.0
jar
health
http://maven.apache.org
UTF-8
data-service
data-service
1.0-SNAPSHOT
test

 

data-service pom.xml

数据服务(data-service)项目对于每一个微小的变化释放 1.0 快照:

4.0.0
data-service
data-service
1.0-SNAPSHOT
jar
health
http://maven.apache.org
UTF-8

 

虽然,在使用快照(SNAPSHOT)时,Maven 自动获取最新的快照版本。不过我们也可以强制使用 -U 切换到任何 maven 命令来下载最新的快照版本。

mvn clean package -U

打开命令控制台,进入到 C: \MVN\app-ui  目录,然后执行以下命令mvn命令。

C:\MVN\app-ui>mvn clean package -U

Maven会下载数据服务的最新快照后并开始构建该项目,如下所输出:

[INFO] Scanning for projects...[INFO] -------------------------------------------------------------------[INFO] Building consumerBanking[INFO]    task-segment: [clean, package][INFO] -------------------------------------------------------------------[INFO] Downloading data-service:1.0-SNAPSHOT[INFO] 290K downloaded.[INFO] [clean:clean {execution: default-clean}][INFO] Deleting directory C:MVNapp-ui	arget[INFO] [resources:resources {execution: default-resources}][WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,i.e. build is platform dependent![INFO] skip non existing resourceDirectory C:MVNapp-uisrcmainresources[INFO] [compiler:compile {execution: default-compile}][INFO] Compiling 1 source file to C:MVNapp-ui	argetclasses[INFO] [resources:testResources {execution: default-testResources}][WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources,i.e. build is platform dependent![INFO] skip non existing resourceDirectory C:MVNapp-uisrc	estresources[INFO] [compiler:testCompile {execution: default-testCompile}][INFO] Compiling 1 source file to C:MVNapp-ui	arget	est-classes[INFO] [surefire:test {execution: default-test}][INFO] Surefire report directory: C:MVNapp-ui	argetsurefire-reports------------------------------------------------------- T E S T S-------------------------------------------------------Running com.companyname.bank.AppTestTests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.027 secResults :Tests run: 1, Failures: 0, Errors: 0, Skipped: 0[INFO] [jar:jar {execution: default-jar}][INFO] Building jar: C:MVNapp-ui	argetapp-ui-1.0-SNAPSHOT.jar[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESSFUL[INFO] ------------------------------------------------------------------------[INFO] Total time: 2 seconds[INFO] Finished at: Tue Jul 10 16:52:18 IST 2015[INFO] Final Memory: 16M/89M[INFO] ------------------------------------------------------------------------

转载于:https://www.cnblogs.com/xiang-/p/6027142.html

你可能感兴趣的文章
Android自动化测试第三季第二讲Toast控件文字获取
查看>>
Google Analytics的能与不能
查看>>
Ubuntu 基本操作
查看>>
JAVA数组的定义及用法
查看>>
18寒假第七测
查看>>
帧中继
查看>>
105:MyBatis常见实用面试题整理
查看>>
Base on QC Automation Framework v1.0
查看>>
bzoj 3261: 最大异或和 (可持久化trie树)
查看>>
UVA 11440 Help Tomisu
查看>>
bzoj千题计划258:bzoj3123: [Sdoi2013]森林
查看>>
开博@纪念
查看>>
linux的正则表达式
查看>>
Android 中EditText 与Keyboard 引起的UI bug
查看>>
20162316刘诚昊 2016-2017-2《程序设计与数据结构》课程总结
查看>>
代理模式---动态代理之JDK
查看>>
POJ 1182 食物链
查看>>
python xml解析和生成
查看>>
MySQL MGR集群搭建
查看>>
吴恩达深度学习笔记 cousrse4 week1作业
查看>>