Maven多模块项目不包括子模块war文件中的配置文件依赖项

时间:2014-05-30 12:55:21

标签: java maven

所以,我有一个基本上是这样的maven项目:

  • module_parent
    • module_child_1(jar)
    • module_child_2(战争)

module_parent.pom:

<?xml version="1.0" encoding="UTF-8"?>
<project ...>
<parent>
    <artifactId>test_module_dependencies</artifactId>
    <groupId>test_module_dependencies</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>module_parent</artifactId>
<packaging>pom</packaging>
<modules>
    <module>module_child_1</module>
    <module>module_child_2</module>
</modules>
</project>

module_child_1.pom:

<project ...>
    <parent>
        <artifactId>module_parent</artifactId>
        <groupId>test_module_dependencies</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>

    <artifactId>module_child_1</artifactId>

    <profiles>
        <profile>
            <id>profile1</id>
            <dependencies>
                <dependency>dependency1</dependency>
            </dependencies>
        </profile>
        <profile>
            <id>profile2</id>
            <dependencies>
                <dependency>dependency2</dependency>
            </dependencies>
        </profile>
    </profiles>  
</project>

module_child_2.pom:

<project ...>
    <parent>
        <artifactId>module_parent</artifactId>
        <groupId>test_module_dependencies</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <packaging>war</packaging>

    <artifactId>module_child_2</artifactId>

    <dependencies>
        <dependency>
            <groupId>test_module_dependencies</groupId>
            <artifactId>module_child_1</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <warName>crit-workflow</warName>
                    <webXml>WEB-INF/web.xml</webXml>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

(我试图尽可能地缩短代码)。 因此,module_child_2是一个WAR模块。我想在做一个“mvn clean install -P profile1”时,在module_child_2的目标中有一个.war文件。我有它。问题是profile1中的依赖项不包含在.war文件中。我检查了配置文件是否实际加载,使用带有a的maven-antrun-plugin,我可以确认它已加载。

但是module_child_1的profile1的依赖关系不包含在module_child_2.war存档中。

NB如果我将activeByDefault = true,则包含dependency1库。但即使profile1配置文件未激活,它也包括在内。

0 个答案:

没有答案