在POM文件AEM / CQ中使用SNAPSHOT有什么用?

时间:2017-09-28 11:52:45

标签: aem cq5 aem-6

这是一个非常基本的问题,但是当我们将后缀SNAPSHOT添加到AEM项目的POM.xml文件时会发生什么?

<version>1.0.0-SNAPSHOT</version>

<version>1.0.0</version>

我问的是AEM中使用的OSGi容器Apache Felix的行为。 我认为这与拾取捆绑包或不捆绑产品有关。

3 个答案:

答案 0 :(得分:5)

如果存在多个具有相同符号名称的捆绑包,OSGi安装程序将始终尝试安装捆绑包的最高版本。

但是,当您重新安装具有发布版本(而不是快照)的现有捆绑包时,即使捆绑包中有更改,OSGi安装程序也会忽略该捆绑包。

然而,如果要重新安装具有快照版本的软件包,OSGi安装程序将使用所有新更改来更新软件包。

Apache Sling OSGi安装程序的

Bundle Handling section将为此提供更多见解。

答案 1 :(得分:3)

添加SNAPSHOT后缀以指示将新版本部署到maven存储库。通常在开发阶段,如果开发人员通过添加依赖关系标记和最新版本来配置pom.xml以获取最新代码,则会从存储库中获取最新版本。

答案 2 :(得分:2)

来自http://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN401

  

SNAPSHOT版本引用使Maven能够在依赖项目构建时获取最近部署的SNAPSHOT依赖项实例。请注意,SNAPSHOT会不断变化。每当代理部署工件时,它都会在共享存储库中更新。在开发人员的计算机上重新获取SNAPSHOT依赖项,或者在每个构建中更新它。这可确保更新依赖关系并与最新更改集成,而无需更改项目依赖关系引用配置。

持续整合

  

包含基于Maven项目(如Hudson)定义和执行作业的能力的连续构建服务器可以配置为识别何时更新SNAPSHOT工件,然后重建依赖于更新工件的项目。

对于OSGI安装程序,它只会安装新版本。但是对于具有快照限定符的包,无论如何它都会安装。

来源:sling.apache.org/documentation/bundles/osgi-installer.html#versions-and-snapshots