AEM - 与Maven的持续集成

时间:2016-04-16 19:23:39

标签: maven jenkins continuous-integration aem

我在AEM和Maven中也很新,我想为我的AEM网站实施CI。

以下是我想在Go.CD或Jenkins中实施的流程,我已经知道如何进行前3个阶段。

我现在正在努力争取第4号和第5号(与第4号相同)。

我想将上传到nexus存储库的工件mvn clean install -PautoInstallPackage但不安装当前代码。

请参阅下面各阶段的评论

      +-----------+
(1)   |    GIT    |   Start the pipe line when
      +-----+-----+   code is committed.
            |
            v
      +-----+-----+
(2)   | UNIT TEST |    Run the *mvn test*
      +-----+-----+
            |
            v
      +-----+-----+    Run the *mvn clean deploy*
(3)   |   DEPLOY  |    And this uploads the artifacts
      +-----+-----+    to a private nexus repository
            |
            v
      +-----+-----+    Install the artifact compiled, jar'ed
(4)   | INSTALL TO|    and uploaded to nexus repository in stage 3
      |   QA ENV  |    when manually triggered.
      +-----+-----+
            |
            v
      +-----+-----+    Install the same artifact from the
(5)   | INSTALL TO|    current pipeline compiled in 
      |  STAGING  |    stage 3 to staging when manually
      +-----------+    triggered.

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:4)

第4步和第5步不在maven构建/部署阶段。这些与跨环境的代码推广过程更相关,这些过程可能因组织而异。

由于您正在使用AEM,因此可以选择使用curl将工件(AEM包或OSGI包)部署到服务器。可以找到许多常用的卷曲命令here

您可以创建可以将工件上传/安装/卸载到AEM的脚本。脚本的输入可以是您的预期服务器环境和工件名称/版本。然后,Jenkins作业可以触发那些脚本,从Jenkins控制变量向脚本提供所需的输入。

e.g。 curl -u username:password -F file=@"name of zip file" -F name="name of package" -F force=true -F install=true http://localhost:4503/crx/packmgr/service.jsp
这是包安装shell脚本的关键。用户名,密码,AEM服务器URL包zip都可以是当作业触发执行此脚本时可以从Jenkins传递的变量。

如果你的软件包在本地nexus repo中,你可以下载使用此脚本安装到AEM之前的软件包。

答案 1 :(得分:0)

您可以使用Vault maven插件来部署工件。它位于http://repo.adobe.com。插件的示例用法是:

<plugin>
    <groupId>com.day.jcr.vault</groupId>
    <artifactId>content-package-maven-plugin</artifactId>
    <version>0.0.23</version>
    <extensions>true</extensions>
    <configuration>
        <failOnError>true</failOnError>
        <userId>${aem.user}</userId>
        <password>${aem.password}</password>
    </configuration>
</plugin>

您还应该将adobe存储库添加到您的maven POM中:

<repository>
    <id>adobe-public-releases</id>
    <name>Adobe Basel Public Repository</name>
    <url>http://repo.adobe.com/nexus/content/groups/public</url>
    <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
    </releases>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
</repository>

您可以查看有关它的官方文档https://docs.adobe.com/docs/en/aem/6-0/develop/dev-tools/vlt-mavenplugin.html