【问题标题】:Adobe Experience Manager deployment using Maven, SVN, and Jenkins IssueAdobe Experience Manager 部署使用 Maven、SVN 和 Jenkins 问题
【发布时间】:2016-03-02 20:21:26
【问题描述】:

我们正在努力在代码签入时使用 Jenkins 将 AEM 站点部署到我们的开发服务器。基础架构使用 Jenkins,并配置和设置了 Maven、JDK 和 SVN。

我们有一个多模块项目。文件结构如下:

/ProjectFolder/
--------------/ProjectName/
--------------/ProjectName/pom.xml
--------------/ProjectName.core/
--------------/ProjectName.core/pom.xml
--------------/ProjectName.it.launcher/
--------------/ProjectName.it.launcher/pom.xml
--------------/ProjectName.it.tests/
--------------/ProjectName.it.tests/pom.xml
--------------/ProjectName.ui.apps/
--------------/ProjectName.ui.apps/pom.xml
--------------/ProjectName.ui.content/
--------------/ProjectName.ui.content/pom.xml

/ProjectName/pom.xml 指定以下内容:

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ProjectName</groupId>
<artifactId>ProjectName</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<description>ProjectName</description>

<modules>
    <module>core</module>
    <module>ui.apps</module>
    <module>ui.content</module>
    <module>it.tests</module>
    <module>it.launcher</module>
</modules>

将 Jenkins 作业设置为从 SVN 拉取并使用 Maven 发布,它会找到根 POM (ProjectName/pom.xml),但会因模块 POM 文件而失败。产生以下输出:

ERROR: Failed to parse POMs
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[ERROR] Child module C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\core of C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\pom.xml does not exist @ 
[ERROR] Child module C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\ui.apps of C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\pom.xml does not exist @ 
[ERROR] Child module C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\ui.content of C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\pom.xml does not exist @ 
[ERROR] Child module C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\it.tests of C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\pom.xml does not exist @ 
[ERROR] Child module C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\it.launcher of C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\pom.xml does not exist @ 

谁能提供一些关于这可能是什么问题的见解?

【问题讨论】:

  • 您能否检查所有模块是否存在于 - C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\
  • 结构几乎相同。而不是 C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName\,而是 C:\Users\JenkinsSA\.jenkins\jobs\Web_PublishDevelopment\workspace\ProjectName.core... 如果有意义的话(这条评论很难让它看起来像我需要的那样。

标签: maven svn jenkins deployment aem


【解决方案1】:

改变你父 pom 中的模块如下-

<modules>
    <module>../ProjectName.core</module>
    <module>../ProjectName.ui.apps</module>
    <module>../ProjectName.ui.content</module>
    <module>../ProjectName.it.tests</module>
    <module>../ProjectName.it.launcher</module>
</modules>

另一种解决方案是保持 pom 原样并将模块文件夹移动到父文件夹中。即-

/ProjectFolder/
--------/ProjectName/
--------------/core
--------------/it.launcher
--------------/it.tests
--------------/ui.apps
--------------/ui.content

【讨论】:

  • 我最终将 POM 文件从 /projectfolder/projectname/ 复制到 /projectfolder/,然后将 projectname 添加到模块列表中。我将不得不与我们的网络团队进行讨论,以讨论我们如何在未来保持正确的结构。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
相关资源
最近更新 更多