如何通过maven部署rep:policy文件?

jig*_*ggy 8 maven aem

我通过为每个添加_rep_policy.xml文件向/ home/groups和/ home/users添加了一些额外的ACL,但似乎无法让它们部署.我将以下行添加到我的vault filter.xml中

<filter root="/home/users/rep:policy" mode="replace"/>
<filter root="/home/groups/rep:policy" mode="replace"/>
Run Code Online (Sandbox Code Playgroud)

两者都有这样的内容:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:rep="internal"
    jcr:primaryType="rep:ACL">
    <allow
        jcr:primaryType="rep:GrantACE"
        rep:principalName="everyone"
        rep:privileges="{Name}[jcr:read]"/>
</jcr:root>
Run Code Online (Sandbox Code Playgroud)

但是当我运行maven时,我可以看到它们周围的一切都被部署,但不是这两个.如果我尝试直接通过包管理器安装包,它只有在我将访问控制处理设置为"替换"时才有效.我不知道如何在maven中配置它.

Sha*_*ppa 6

包属性在POM中的Vault插件的配置部分中配置.要在程序包中启用ACL导入,请将以下配置添加到POM

<configuration>
        <properties>
             <acHandling>Overwrite</acHandling>
        </properties>
</configuration>
Run Code Online (Sandbox Code Playgroud)

为保管库插件的文档是在http://docs.adobe.com/docs/en/cq/5-6-1/core/how_to/how_to_use_the_vlttool/vlt-mavenplugin.html

  • @jiggy,没有提及解决方案的道歉没有经过测试.原来所有的配置都被覆盖了.正确的方法是在POM中设置它们.编辑了我的答案,包含相同的内容. (2认同)
  • 注意:自从插件更新到1.0.2版本后,这个配置应该添加到`filevault-package-maven-plugin`配置中。请参阅下面的[答案](/sf/answers/4210364861/) (2认同)

Max*_*ass 5

所以这个问题一劳永逸地得到了正确的回答...更新你的 pom 构建插件“com.day.jcr.vault”:

<plugin>
    <groupId>com.day.jcr.vault</groupId>
    <artifactId>content-package-maven-plugin</artifactId>
    <version>0.0.24</version>
    <extensions>true</extensions>
    <configuration>
        <failOnError>true</failOnError>
        <username>${crx.username}</username>
        <password>${crx.password}</password>
        <properties>
            <acHandling>merge_preserve</acHandling>
        </properties>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

ac处理选项: - 忽略 - 覆盖 - 合并 - merge_preserve - 清除