在maven中包装时排除资源

时间:2014-03-14 03:05:06

标签: maven cq5 maven-resources-plugin

我有一个样本结构的项目:

jcr_root |_apps |_A |_B |_etc |_A |_B

我需要做的是在创建包时,我需要包含" apps / A&等/ A"或者" apps / B&等/ B"

在我的pom.xml中,我试过了类似的东西:

<resources>
       <resource>
        <directory>src/main/content/jcr_root</directory>
            <excludes>
            <exclude>apps/A/**</exclude>
                        <exclude>etc/A/**</exclude>
                </excludes>
     </resource>
</resources>

但仍然是&#39; A&#39;和&#39; B&#39;在应用程序等下包含在包装中。我使用content-package-maven-plugin构建了一个将部署在CQ上的软件包。

我尝试将条目放在filter.xml中,但是在部署时使用它,而不是在打包时使用。

看来,包含/排除标签根本不起作用。为了测试,我尝试了:

<resources>
   <resource>
    <directory>src/main/content/jcr_root</directory>
        <excludes>
        <exclude>**/*.otf</exclude>
                    </excludes>
   </resource>
</resources>

但是fonts.otf文件仍然包含在打包的zip中。

请提供一些帮助或提示。如果需要更多信息,请告诉我。

非常感谢提前。

2 个答案:

答案 0 :(得分:1)

所以最后我能够使用排除的资源创建一个包。

问题不在于include / exclude标签(它们总能正常工作。)

排除某些资源后的文件被复制到“target / classes”目录 问题是maven-content-package插件将资源从原始源目录而不是创建的“target / classes”目录中打包。因此它总是包含所有内容。这是maven-content-package插件的默认行为。

因此,我必须明确告诉插件您需要从“目标/类”中选择要打包的资源。

<builtContentDirectory>${basedir}/target/classes</builtContentDirectory>

如果有人需要更多细节,请告诉我。感谢您的所有答案:)

答案 1 :(得分:0)

因为你想要包含jcr_root / app / A和jcr_root / etc / A. 请您尝试在POM.xml中使用它:

<project>
    ...
    <resources>
    <resource>
        <directory>jcr_root</directory>
        <includes>
            <include>**/*A*</include>
        </includes>
        <excludes>
            <exclude>**/*B*</exclude>
        </excludes>
    </resource>
    <resources>
</project>

同样地,你可以用它来获取jcr_root / app / B和jcr_root / etc / B.

此致

Jyotsna