Java 如何创建maven profile&;根据激活的配置文件使用不同的XML套件运行每个配置文件?
我不熟悉maven和maven简介。我正在从事一个自动化maven项目,我正在尝试创建不同的配置文件。我想做的是,每个配置文件将根据激活的配置文件运行不同的XMLSuiteJava 如何创建maven profile&;根据激活的配置文件使用不同的XML套件运行每个配置文件?,java,maven,selenium-webdriver,Java,Maven,Selenium Webdriver,我不熟悉maven和maven简介。我正在从事一个自动化maven项目,我正在尝试创建不同的配置文件。我想做的是,每个配置文件将根据激活的配置文件运行不同的XMLSuite <profiles> <profile> <id>Jenkins</id> <activation> <activeByDefault>false</activeByDefault&g
<profiles>
<profile>
<id>Jenkins</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<suiteXmlFiles>
<echo>Jenkins profile</echo>
<suiteXmlFiles>xml/jenkins.xml</suiteXmlFiles>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>Ticket</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<suiteXmlFiles>
<echo>Ticket profile</echo>
<suiteXmlFiles>xml/Tickets.xml</suiteXmlFiles>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
感谢那么最干净的实现就是让插件的单个配置运行每个构建,并简单地定义一个属性令牌,该令牌随配置文件的不同而变化
<profiles>
<profile>
<id>Jenkins</id>
<properties>
<my.echo>Jenkins profile</my.echo>
<my.xml.files>xml/jenkins.xml</my.xml.files>
</properties>
</profile>
<profile>
<id>Ticket</id>
<properties>
<my.echo>Ticket profile</my.echo>
<my.xml.files>xml/Tickets.xml</my.xml.files>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<suiteXmlFiles>
<!-- DELETE THIS LINE: IS A TYPO
<echo>Ticket profile</echo>
-->
<!-- PROFILE-DRIVEN SUBSTITUTION -->
<echo>${my.echo}</echo>
<suiteXmlFiles>${my.xml.files}</suiteXmlFiles>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
詹金斯
詹金斯档案
xml/jenkins.xml
票
票证资料
xml/Tickets.xml
org.apache.maven.plugins
maven surefire插件
2.17
**/*.爪哇
${my.echo}
${my.xml.files}
希望能有所帮助。请将错误消息复制到原始帖子中,以便正确读取空白。THX pom文件中有一个无关的票证配置文件。看看这是否有区别。这是pom文件中的回音,删除了它,效果很好。谢谢你的帮助!333 Kenshin,例如,当一个概要文件的xmlsuites多于另一个时,您如何处理?唉,maven不允许将列表作为属性传递。您必须返回到原始配置。说到这里,使用回音块看起来有点可疑。如果你把它扔掉呢?此外,内部suiteXmlFile应该是单数的,即suiteXmlFile,不带尾随的's'
<profiles>
<profile>
<id>Jenkins</id>
<properties>
<my.echo>Jenkins profile</my.echo>
<my.xml.files>xml/jenkins.xml</my.xml.files>
</properties>
</profile>
<profile>
<id>Ticket</id>
<properties>
<my.echo>Ticket profile</my.echo>
<my.xml.files>xml/Tickets.xml</my.xml.files>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
<suiteXmlFiles>
<!-- DELETE THIS LINE: IS A TYPO
<echo>Ticket profile</echo>
-->
<!-- PROFILE-DRIVEN SUBSTITUTION -->
<echo>${my.echo}</echo>
<suiteXmlFiles>${my.xml.files}</suiteXmlFiles>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>