转载

Maven快照

   

大型应用软件一般由多个模块,它是多个团队正在开发同一个应用程序的不同模块​​,其中常见的场景。例如,考虑一个团队正在对应用程序的应用程序,用户界面项目(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:/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:/MVN/app-ui/target [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:/MVN/app-ui/src/main/ resources [INFO] [compiler:compile {execution: default-compile}] [INFO] Compiling 1 source file to C:/MVN/app-ui/target/classes [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:/MVN/app-ui/src/test/ resources [INFO] [compiler:testCompile {execution: default-testCompile}] [INFO] Compiling 1 source file to C:/MVN/app-ui/target/test-classes [INFO] [surefire:test {execution: default-test}] [INFO] Surefire report directory: C:/MVN/app-ui/target/ 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:/MVN/app-ui/target/ 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] ------------------------------------------------------------------------
   
正文到此结束
Loading...