这是一个非常基本的问题,但是当我们将后缀SNAPSHOT添加到AEM项目的POM.xml文件时会发生什么?
<version>1.0.0-SNAPSHOT</version>
<version>1.0.0</version>
我问的是AEM中使用的OSGi容器Apache Felix的行为。 我认为这与拾取捆绑包或不捆绑产品有关。
答案 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