十三、Maven快照

转载 2015年11月18日 13:00:49

大型应用软件一般由多个模块,它是多个团队正在开发同一个应用程序的不同模块​​,其中常见的场景。例如,考虑一个团队正在对应用程序的应用程序,用户界面项目(app-ui.jar:1.0) 的前端和他们正在使用的数据服务计划 (data-service.jar:1.0)。

现在,它可能发生,团队工作的数据服务正在发生快速的步伐bug修复或增强功能和它们释放出库到远程仓库几乎每隔一天。

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

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

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

为了处理这类情况,快照的概念开始发挥作用。

什么是快照?

快照是一个特殊版本,指出目前开发复印件。不同于常规版本,Maven的检查新的快照版本中,每生成一个远程存储库。

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

快照与版本

如遇版本的,如果一旦Maven的下载所提到的版本为,data-service:1.0,它永远不会尝试下载更新1.0可在库中。要下载更新的代码,数据服务版本升级到1.1。

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

app-ui pom.xml

app-ui 项目使用数据服务的1.0-SNAPSHOT

<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.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>app-ui</groupId>
   <artifactId>app-ui</artifactId>
   <version>1.0</version>
   <packaging>jar</packaging>
   <name>health</name>
   <url>http://maven.apache.org</url>
   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
   <dependencies>
      <dependency>
      <groupId>data-service</groupId>
         <artifactId>data-service</artifactId>
         <version>1.0-SNAPSHOT</version>
         <scope>test</scope>
      </dependency>
   </dependencies>
</project>

data-service pom.xml

数据服务项目释放1.0快照对于每一个微小的变化

<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.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>data-service</groupId>
   <artifactId>data-service</artifactId>
   <version>1.0-SNAPSHOT</version>
   <packaging>jar</packaging>
   <name>health</name>
   <url>http://maven.apache.org</url>
   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
   </project>

虽然,如快照,Maven自动获取上每天最新的快照。您可以强制使用-U切换到任何maven命令来下载最新的快照版本。

mvn clean package -U

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

C:MVNapp-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-uisrcmain
resources
[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	est
resources
[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	arget
surefire-reports
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.companyname.bank.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.027 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] [jar:jar {execution: default-jar}]
[INFO] Building jar: C:MVNapp-ui	arget
app-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 2012
[INFO] Final Memory: 16M/89M
[INFO] ------------------------------------------------------------------------

【Maven】Maven 快照版本 的意义

在组织内部项目开发的过程中,如果模块b的开发依赖于模块a,而a在发布某一个版本前会不停的修改,因此为避免b模块pom文件不停修改,需要将模块a的版本设定为x.x-SNAPSHOT,然后发布,在发布的过...
  • u013177446
  • u013177446
  • 2016年12月30日 15:53
  • 754

Maven 快照的使用

需求:先有项目S在开发阶段,需要定期优化,然后有其他项目B需要依赖这个项目进行开发,由于项目S不稳定,经常更新版本,为了避免项目B频繁维护S项目的依赖关系,可将项目S设定为快照版本。 步骤: 1. 在...
  • sunnyliuqi
  • sunnyliuqi
  • 2017年02月28日 11:57
  • 318

maven 快照 更新策略

1、为什么会有快照? 开发中,A项目依赖于项目B,没有快照时,B每次改动我们就需要赋予给他一个新版本号,然后在A的pom.xml中修改B的版本,这不仅浪费版本号,而且会带来很多的沟通成本。快照就是为了...
  • wangjun5159
  • wangjun5159
  • 2015年10月13日 11:20
  • 2580

MAVEN使用快照不能获取最新jar的问题

1.将中的never设置为always。 2. 可以在任何 maven 命令中使用 -U 参数强制maven 下载最新的快照。 mvn clean package -U 让我们打...
  • u014401141
  • u014401141
  • 2017年06月21日 19:03
  • 585

Maven 学习笔记二十一:Maven仓库(快照版本)

 Maven仓库(快照版本) ---------- 在Maven的世界中,任何一个项目或者构件都必须有自己的版本。版本的值可能是1.0.0,1.3-alpha-4,2.0,2.1-SNAPS...
  • zhouzhiwengang
  • zhouzhiwengang
  • 2014年05月27日 00:56
  • 1299

maven快照版本和发布版本

在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,...
  • xuchuangqi
  • xuchuangqi
  • 2016年11月28日 23:37
  • 524

maven手动上传快照版本jar命令

手动上传SNAPSHOT版本:  mvn deploy:deploy-file -DgroupId=com.cattsoft.xmlbeans -DartifactId=rms2nms -D...
  • xiaolinzi007
  • xiaolinzi007
  • 2014年11月06日 10:39
  • 528

maven正式版本和快照版本的区别

在Nexus仓库中,一个仓库一般分为public(Release)仓库和SNAPSHOT仓。前者存放正式版本,后者存放快照版本。 在项目pom.xml中,指定版本号带-SNAPSHOT,那么打出的包...
  • lvhao2813
  • lvhao2813
  • 2018年01月17日 14:58
  • 55

maven 中的快照版本的讲解(SNAPSHOT)

在使用maven过程中,我们在开发阶段经常性的会有很多公共库处于不稳定状态,随时需要修改并发布,可能一天就要发布一次,遇到bug时,甚至一天要发布N次。我们知道,maven的依赖管理是基于版本管理的,...
  • qq_27828109
  • qq_27828109
  • 2017年08月17日 15:04
  • 100

Maven实战 --- 仓库、镜像、快照

何为 Maven 仓库 在 Maven 世界中,任何一个依赖、插件或者项目构建的输出,都可以称为构件,任何一个构件都有一组坐标唯一标识。 得益于坐标机制,任何 Maven 项目使用任何一个构件的方式都...
  • OiteBody
  • OiteBody
  • 2017年05月02日 23:18
  • 338
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:十三、Maven快照
举报原因:
原因补充:

(最多只允许输入30个字)