Maven排除文件夹无法正常工作

时间:2015-03-23 08:14:17

标签: java eclipse maven pom.xml

我的pom文件的代码如下: 在我需要的地方应该排除在构建项目时生成给定文件  应该在构建项目时排除生成给定文件夹(包括所有子文件夹和文件)本身。

<profile>
    <id>nets</id>
    <properties>
        <ulysses.menu>ldms-menu.properties</ulysses.menu>
        <approval.workflow>false</approval.workflow>
        <mail.useldap>false</mail.useldap>
        <mail.latize.usesmtp>false</mail.latize.usesmtp>
        <ulysses.base.uri>http://data.latize.com/nets</ulysses.base.uri>
        <!-- lee.menu>nets-menu.properties</lee.menu >
        <lee.ftl>nets.ftl</lee.ftl>
        <path.has.lee>nets</path.has.lee>
        <kiwi.pages.startup>core/nets/summary.html</kiwi.pages.startup>
        <project.exclude.core.files>**/marmotta/platform/core/services/triplestore/*SesameServiceImpl*.*</project.exclude.core.files-->
        <project.exclude.core.files>**/ihg*.*</project.exclude.core.files>
        <project.exclude.core.folder>**/web/ihg/**</project.exclude.core.folder>
    </properties>
</profile>

...
<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <excludes>
                    <!--excludes native sesame implementation-->
                    <!--exclude>**/PrimarySesameServiceImpl*.*</exclude>
                    <exclude>**/ApprovalSesameServiceImpl*.*</exclude>
                    <exclude>**/SesameServiceImpl*.*</exclude-->

                    <!--excludes GraphDB sesame implementation -->
                    <!--exclude>**/GraphDBPrimarySesameServiceImpl*.*</exclude>
                    <exclude>**/GraphDBApprovalSesameServiceImpl*.*</exclude>
                    <exclude>**/GraphDBSesameServiceImpl*.*</exclude-->

                    <exclude>${project.exclude.core.files}</exclude>
                </excludes>
                <resource>
                    <directory>${project.exclude.core.folder}</directory>
                    <excludes>
                        <exclude>*.*</exclude>
                    </excludes>
                </resource>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>test-jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

此处从ihg开始的文件排除工作正常,但文件夹ihg未被排除。我不知道如何在这种情况下排除文件夹。

2 个答案:

答案 0 :(得分:1)

您可以参考:Maven - exclude folder from build

简而言之

尝试

<exclude>**/foo/**</exclude>

它会将foo排除为文件夹

答案 1 :(得分:0)

maven-jar-plugin进行了简短的尝试。假设我有这样的事情:

foo-proj
  + src
    + main
      + resources
        + foo
          - foo.txt
        + bar
          - bar.txt

我可以通过以下方式从结果jar中排除foo

<plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>**/foo/**</exclude>
        </excludes>
    </configuration>
</plugin>