如果条件为 true,则在 pom.xml 文件上添加排除项

问题描述 投票:0回答:1

我正在处理一个 pom.xml 文件,如果条件设置为 true,我想排除一个文件,如果不是,我不会被排除。我尝试使用配置文件,但它不起作用,我该如何实现这一目标?

编辑:这是我在 pom.xml 中的个人资料。这样做的想法是,当我进行 mvn 安装时,根据我的配置文件条件,我将跳过或执行我拥有的一些 Cucumber/.feature 文件。现在我排除了黄瓜跑步者。当用户不想排除运行器时,mvn install 将执行所有测试(单元测试和黄瓜测试)。但是当排除它时,只执行单元测试。

我的想法是这样的:

<profile>
            <id>local</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>3.1.2</version>
                        <configuration>
                            <excludes>
                                <exclude>**/MyCucumberRunner.java</exclude>
                            </excludes>
                        </configuration>
                        <!-- <executions>
                             <execution>
                                 <id>exclude-file</id>
                                 <phase>generate-resources</phase>
                                 <configuration>
                                     <outputDirectory>${project.build.directory}</outputDirectory>
                                     <resources>
                                         <resource>
                                             <directory>${basedir}</directory>
                                             <excludes>
                                                 <exclude>**/MyCucumberRunner.java</exclude>
                                             </excludes>
                                         </resource>
                                     </resources>
                                 </configuration>
                             </execution>
                         </executions> --> 
                    </plugin>
           </build>
    </profile>
java maven pom.xml
1个回答
0
投票

要根据 Maven 中的配置文件实现文件的条件排除,您可以使用 build-helper-maven-plugin 在构建过程中添加或删除资源。以下是如何修改 pom.xml 的示例:

<profiles>
    <profile>
        <id>local</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <build>
            <plugins>
                <!-- Add build-helper-maven-plugin to manipulate resources -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.2.0</version>
                    <executions>
                        <execution>
                            <id>conditional-exclude</id>
                            <phase>initialize</phase>
                            <goals>
                                <goal>regex-properties</goal>
                            </goals>
                            <configuration>
                                <!-- Set a property based on your condition -->
                                <regexProperty>
                                    <name>exclude.cucumber.runner</name>
                                    <value>${your.condition}</value>
                                    <regex>false|true</regex>
                                </regexProperty>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>3.1.2</version>
                    <configuration>
                        <excludes>
                            <!-- Exclude MyCucumberRunner.java based on the property -->
                            <exclude>${exclude.cucumber.runner}**/MyCucumberRunner.java</exclude>
                        </excludes>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

在此示例中:

build-helper-maven-plugin 用于根据初始化阶段的情况设置属性(exclude.cucumber.runner)。

maven-surefire-plugin 配置为根据属性的值排除指定文件 (MyCucumberRunner.java)。

确保将 ${your.condition} 替换为您的实际情况。如果条件为真,则排除指定文件;否则,它将包含在构建中。根据您的项目结构调整元素中的正则表达式。

© www.soinside.com 2019 - 2024. All rights reserved.