如何在pom.xml文件中声明用户定义的属性



我正在使用maven项目进行UI自动化,我需要在多个环境和多个浏览器中运行一些测试。我已经创建并添加了pom.xml文件,并声明了其中的属性。但当我通过终端执行它时,我会收到错误。我使用的命令-

mvn clean

mvn test -Denvironment=test -Dbrowser=chrome

我的Xml文件-

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>ui-automation-projects</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<property>
<environment>${environment}</environment>
</property>
<property>
<browser>${browser}</browser>>
</property>
</properties>

<dependencies> </dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
</plugin>
</plugins>
</build>

错误-[INF]正在扫描项目。。。[ERROR][ERROR]处理POM时遇到一些问题:[FATAL]不可解析的POM D:\work\CCucumber_Projects\ui automation Projects\POM.xml:TEXT后面必须紧跟END_TAG,而不是START_TAG(位置:START_TAG可见…\n…@13:26(@line13,第26列

您必须删除<property>并在<properties>下添加您的属性。

<properties>
<environment>${environment}</environment>
<browser>${browser}</browser>
</properties>

此外,您还有一个额外的">"</browser>之后

pom.xml中的项目属性声明如下:
<properties>
<environment>default-environemnt-value</environment>
<browser>default-browser-value</browser>>
</properties>

你可以在POM参考中阅读更多

在parson pom.xml文件中出现错误,我将其检查到我的Idea中并进行了更正。您没有</project>标记,<dependencies> </dependencies>是多余的。也应该有答案

<properties>
<environment>${envValue}</environment>
<browser>${browserValue}</browser>
</properties>

在此之后,文件将正确构建。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>ui-automation-projects</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<environment>${envValue}</environment>
<browser>${browserValue}</browser>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
</plugin>
</plugins>
</build>
</project>

我看到了u r POM的一些联系,并看到了我的本地POM如何定义我的依赖项和POM我发现两件事

  1. 您已经定义了属性,您可以在其中直接添加值(这里是环境和浏览器(否则在属性中单独定义如下${environment}
  2. 我还没有看到项目在POM中结束。试着添加它,它应该会起作用

在此处输入图像描述

最新更新