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

zxlwwiss  于 2023-01-19  发布在  Java
关注(0)|答案(2)|浏览(100)

我有两个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中的所有文件。
这是否可能,如果不可能,是否有其他选择?

hjqgdpho

hjqgdpho1#

您可以将带有Maven Compiler Pluginbuild添加到您的配置文件中,然后在其中添加exclude
例如

<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

r7s23pms

r7s23pms2#

如果你使用的是spring Boot maven插件,使用应该这样做:

<profiles>
    <profile>
        <id>sample-profile</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <excludes>
                            <exclude>com/example/foo/ToSkip.java</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </profile>
  </profiles>

相关问题