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

11

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

我在 /home/groups 和 /home/users 目录下添加了一些额外的 ACL,方法是为每个目录添加一个 _rep_policy.xml 文件,但似乎无法成功部署。我在我的 vault filter.xml 文件中添加了以下行:

<filter root="/home/users/rep:policy" mode="replace"/>
<filter root="/home/groups/rep:policy" mode="replace"/>

两者的内容都像这样:

<?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>

但是当我运行maven时,我可以看到它们周围的所有内容都被部署了,但这两个没有。如果我尝试通过包管理器直接安装软件包,只有在将访问控制处理设置为“Replace”时才能工作。我不知道如何在maven中进行配置。

4个回答

8

这个答案看起来很清晰,但是当我尝试时却没有任何效果。我在包管理器中设置了一个包,并下载以获取我想要的确切定义/.content.xml。将其添加到项目中。我看到它被复制到target/vault-work和包zip中。但是rep:policy仍未部署,并且我的配置未反映在包管理器中。 - jiggy
2
@jiggy,抱歉没有提到解决方案未经测试。结果发现所有配置都被覆盖了。正确的方法是在 POM 中设置它们。我已编辑我的答案以包含相同内容。 - Sharath Madappa
2
注意:自插件更新至1.0.2版本后,此配置应添加到filevault-package-maven-plugin配置中。请参见下面的答案 - NielsInc

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>

acHandling选项: - 忽略 - 覆盖 - 合并 - 保留合并 - 清空


4
自从Adobe的content-package-maven-plugin版本更新至1.0.2版本后,所有的内容打包功能已被移除,并添加到org.apache.jackrabbit filevault-package-maven-plugin中。 acHandling配置将不再在content-package-maven-plugin中工作,而需要添加到filevault-package-maven-plugin中。
<plugin>
    <groupId>org.apache.jackrabbit</groupId>
    <artifactId>filevault-package-maven-plugin</artifactId>
    <version>1.0.3</version>
    <extensions>true</extensions>
    <configuration>
        <embeddeds>
            <embedded>
                <groupId>com.company</groupId>
                <artifactId>company.core</artifactId>
                <target>/apps/company/install</target>
            </embedded>
        </embeddeds>

        <!-- NEW LOCATION -->
        <properties>
            <acHandling>merge_preserve</acHandling>
        </properties>
        <!-- /NEW LOCATION -->

    </configuration>
</plugin>
<plugin>
    <groupId>com.day.jcr.vault</groupId>
    <artifactId>content-package-maven-plugin</artifactId>
    <version>1.0.2</version>
    <extensions>true</extensions>
    <configuration>
        <verbose>true</verbose>
        <failOnError>true</failOnError>
        <group>company.aem</group>
    </configuration>
</plugin>

如需完整的迁移指南,请访问Jackrabbit文档


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接