运行 两个 Maven 配置文件

Running two maven profiles

我在 pom.xml

中的个人资料
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
            <plugin>
            <artifactId>maven-clean-plugin</artifactId>
            <version>2.4.1</version>
            <configuration>
                <filesets>
                    <fileset>
                        <directory>test-output</directory>
                        <followSymlinks>false</followSymlinks>
                    </fileset>
                </filesets>
            </configuration>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>runWithHead</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.18.1</version>
                    <executions>
                        <execution>
                            <id>execution1</id>
                            <configuration>
                                <systemPropertyVariables>
                                    <homepage>${ADDRESS}</homepage>
                                    <head>true</head>
                                    <browsers>${browser}</browsers>
                                    <chromeDriverLocation>${chromeDriver}</chromeDriverLocation>
                                </systemPropertyVariables>
                                <suiteXmlFiles>
                                    <suiteXmlFile>src/test/resources/testng/testng.xml</suiteXmlFile>
                                </suiteXmlFiles>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <id>runHeadlessly</id>
        <properties>
            <displayProps>target/selenium/display.properties</displayProps>
        </properties>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>selenium-maven-plugin</artifactId>
                    <version>2.3</version>
                    <executions>
                        <execution>
                            <id>xvfb</id>
                            <phase>test-compile</phase>
                            <goals>
                                <goal>xvfb</goal>
                            </goals>
                            <configuration>
                                <browsers>${browser}</browsers>
                                <displayPropertiesFile>${displayProps}</displayPropertiesFile>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.18.1</version>
                    <executions>
                        <execution>
                            <id>execution2</id>                 
                            <configuration>
                                <systemPropertyVariables>
                                    <homepage>${ADDRESS}</homepage>
                                    <head>false</head>
                                    <display.props>${displayProps}</display.props>
                                    <browsers>${browser}</browsers>
                                    <chromeDriverLocation>${chromeDriver}</chromeDriverLocation>
                                </systemPropertyVariables>
                                <suiteXmlFiles>
                                    <suiteXmlFile>src/test/resources/testng/testng.xml</suiteXmlFile>
                                </suiteXmlFiles>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

所以首先我们有共享插件,然后是两个不同的配置文件。 当我尝试 运行 他们用一个命令

mvn clean install -P runHeadlessly,runWithHead

只执行 ID 为 xvfb 的插件,有什么想法吗? (没有 post 默认 属性 变量的部分)

您定义了两个配置文件:

  • 第一个配置文件 runWithHead 定义了 maven-surefire-plugin 的执行,但未指定任何目标 元素(在 goals 部分中),因此空执行
  • 第二个配置文件 runHeadlessly 定义了 selenium-maven-plugin 插件的执行和目标以及 maven-surefire-plugin
  • 的空执行

因此,两个配置文件都会执行,但实际上只会执行 selenium-maven-pluginxvfb 执行中的 xvfb

由于 maven-surefire-plugin 只有 one goal, test,尝试将以下内容添加到两个执行中:

<goals>
   <goal>test</goal>
<goals>

另请注意:您正在配置 maven-surefire-plugin 在默认 default-test 执行之上的其他执行,该执行也将被执行。因此,启用这两个配置文件后,您将最终执行此插件 三次 次。