Java Maven构建所有子模块,即使使用概要文件

Java Maven构建所有子模块,即使使用概要文件,java,maven,intellij-idea,Java,Maven,Intellij Idea,我在父pom.xml文件中有以下片段 <groupId>my.group</groupId> <artifactId>artifact</artifactId> <version>1.0</version> <packaging>pom</packaging> <modules> <module>../A</module> <module>

我在父pom.xml文件中有以下片段

<groupId>my.group</groupId>
<artifactId>artifact</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
    <module>../A</module>
    <module>../B</module>
</modules>
<profiles>
    <profile>
        <id>P1</id>
        <modules>
            <module>../B</module>
        </modules>
    </profile>
<profiles>

但是我想保持modules标签的原样,并使用profile仅编译模块B。是否有任何解决方案来克服此问题。

您必须创建一个单独的概要文件来构建模块a和模块B。默认情况下,您可以激活此概要文件。因此,这不会改变现有的行为

<groupId>my.group</groupId>
<artifactId>artifact</artifactId>
<version>1.0</version>
<packaging>pom</packaging>

<profiles>
    <profile>
        <id>P1</id>
        <modules>
            <module>../B</module>
        </modules>
    </profile>
    <profile>
        <id>Everything</id>
        <modules>
            <module>../A</module>
            <module>../B</module>
        </modules>
    </profile>
<profiles>
my.group
人工制品
1
聚甲醛
P1
../B
一切
../A
../B

为什么不使用
mvn-pl模块B清洁包
?永远不要使用配置文件包含/排除模块:感谢您的回复。我使用modules标签来定义所有模块,因为它将根据IDEA进行检测,并将这些模块加载到“项目树”中。因此,如果我删除一个IDE项目树,它将不会被填充。根据您建议的方法,如果我在IDEA maven窗口中取消选择“一切”配置文件并仅选择P1(仅编译B),IDEA将自动更新项目树(删除模块A并仅保留B)[底线:无论选择的配置文件如何,我都需要在项目树中同时包含模块A和模块B]
<groupId>my.group</groupId>
<artifactId>artifact</artifactId>
<version>1.0</version>
<packaging>pom</packaging>

<profiles>
    <profile>
        <id>P1</id>
        <modules>
            <module>../B</module>
        </modules>
    </profile>
    <profile>
        <id>Everything</id>
        <modules>
            <module>../A</module>
            <module>../B</module>
        </modules>
    </profile>
<profiles>