使用maven从子模块中排除文件不起作用

时间:2017-01-20 20:49:11

标签: maven command-line parent-pom

我有一个多模块项目是以下结构:

ROOT
Module A
-- A_pom.xml
Module B depends on Module A
-- src 
--- com.mycompany
---- App 1
---- App 2
-- B_pom.xml
-- B_App1_pom.xml
-- B_App2_pom.xml
pom.xml  <!-- default parent pom fiel -->
second_parent_pom.xml

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>company</groupId>
    <artifactId>Parent</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>

    <name>Parent</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <modules>
        <module>module-A</module>
        <module>module-B/</module>
    </modules>
</project>

从ROOT目录mvn package帮助我构建了jar文件A.jarB.jar(包括App 1和App 2)

现在我正在寻找一种方法来构建两个jar文件但是只包含App 1.但我尝试了以下代码但没有结果。

<build>
    [...]
    <resources>
        <resource>
            <directory>${basedir}</directory>
                <excludes> 
                <exclude>/../Module_B/src/com/mycompany/App2</exclude>
                </excludes>
        </resource>
    </resources>
</build>

当我尝试从ROOT目录中指定B_App2_pom.xml时,它仍然指向“pom.xml”,这使我得到相同的2个jar文件A.jarB.jar而不是A.jar and B_App2.jar。 另外,我试图创建另一个父pom文件

第二个父Pom

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                      http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>company</groupId>
    <artifactId>SecondParent</artifactId>
    <version>0.0.1</version>
    <packaging>pom</packaging>

    <name>SecondParent</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <modules>
        <module>module-A/B_App1_pom.xml</module>
        <module>module-B/B_App2_pom.xml</module>
    </modules>
</project>

0 个答案:

没有答案