是否可以在Maven中基于每个配置文件排除(或包含)类或资源?

时间:2016-07-05 02:21:12

标签: java maven

我有两个maven配置文件P1和P2,我想要做的是根据我用来构建项目的配置文件,应该排除某些资源。

例如

<profiles>
    <profile>
        <id>P1</id>
        <properties>
            <app.home>Path to project home</app.home>
            <exclude>src/main/java/foo/*.*</exclude> <!-- need to exclude all files in src/main/java/foo in this profile -->
        </properties>
    </profile>
    <profile>
        <id>P2</id>
        <properties>
            <app.home>Path to project home</app.home>
            <exclude>src/main/java/bar/*.*</exclude> <!-- need to exclude all files in src/main/java/bar in this profile-->
        </properties>
    </profile>
</profiles>

所以,这里我要做的是在使用P1配置文件构建时排除src / main / java / foo /中的所有文件,并在使用P2构建时排除src / main / java / bar中的所有文件轮廓。

这是可能的,如果没有,还有其他选择吗?

1 个答案:

答案 0 :(得分:5)

您可以使用Maven Compiler Plugin添加build到您的个人资料,并在其中添加exclude

E.g。

<profile>
    <id>P1</id>
    <properties>
        <app.home>Path to project home</app.home>
    </properties>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>**src/main/java/foo/*.*</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>

有关其他信息,请参阅Maven: excluding java files in compilation