maven内容包安装顺序的子包与pom文件中提到的内容不完全相同。 这仅在使用jdk1.8 java版本的AEM CQ 6.x实例中发生。 在jdk 1.8 maven内容包安装检查包组按字母顺序排列。有没有办法安装子包与pom中提到的顺序相同。
<subPackages>
<subPackage>
<groupId>com.test</groupId>
<artifactId>first</artifactId>
</subPackage>
<subPackage>
<groupId>com.test</groupId>
<artifactId>second</artifactId>
</subPackage>
</subPackages>
答案 0 :(得分:0)
子软件包非常适合俄罗斯娃娃式部署,在该部署中,您将Blob之类的CMS应用拆分为“垂直”(使用上下文映射作为战略性的领域驱动设计模式)。 每个“垂直”将表示为一个子包(将“内容”和“捆绑包”带到组成“业务子域”(又称为“垂直”)的表中)。
这样做的好处是,多个团队可以在这些Vertical上并行工作,每个团队都可以独立部署他们的SubPackage(mvn install -PautoInstallPackage
)-在开发过程中更好的隔离和更好的往返时间(您只需部署更改的内容即可)您的本地邮箱)。
然后,您需要具有一个顶级内容包或UBER内容包,其中包括代表垂直行业的所有内容包,以便能够将整个包安装到任何TEST,QA或PROD Env中。
只要顺序是独立的,顺序就不重要。 有时候,您会有依赖性。
您应该努力使用Maven在DEPENDENT Content Package Project中声明那些依赖项:
<plugin>
<groupId>com.day.jcr.vault</groupId>
<artifactId>content-package-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<name>mysubdomain-ui-content</name>
<finalName>mysubdomain-ui-content-${project.version}</finalName>
<filterSource>src/main/resources/vault/filter.xml</filterSource>
<properties>
<acHandling>merge_preserve</acHandling>
<description>Content Package that has a dependency on another Content Package that needs to be installed first</description>
<!-- controls deployment order when installing the myproject-content Package -->
<!-- As both packages have the same lifecycle, the project.version is the same for both -->
<dependencies><groupIDOtherPKG>:<artifactIDOtherPackage>:${project.version}</dependencies> <!-- here goes the magic -->
</properties>
<subPackages>
<subPackage>
您需要将<groupIDOtherPKG>:<artifactIDOtherPackage>
设置为您在此处依赖的包的相应Maven坐标(例如,mycompany:my-content-package)。
通常,如果另一个Content Package不仅将Content带入捆绑包,还需要将Bundles带到表中,则需要这种依赖声明。
请记住不要产生循环。 即使maven会阻止您这样做,您还是应该在开始时就确定要允许Verticals / Content Packages依赖于其他人...
答案 1 :(得分:-1)
为什么需要按特定顺序安装子包?这是否意味着子包具有内部依赖性?