如何在 pom.xml 文件中声明用户定义的属性
How to declare user defined properties in pom.xml file
我正在使用 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>
错误-
[INFO] 正在扫描项目...
[错误] [错误] 处理 POM 时遇到一些问题:
[FATAL] Non-parseable POM D:\work\Cucumber_Projects\ui-automation-projects\pom.xml: TEXT 必须紧跟 END_TAG 而不是 START_TAG (位置:START_TAG seen .. .\n ... @13:26) @ 行
13,第 26 列
你在 parson pom.xml 文件中有错误,我将它检查到我的想法中并更正了。您没有 </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>
pom.xml 中的项目属性声明如下:
<properties>
<environment>default-environemnt-value</environment>
<browser>default-browser-value</browser>>
</properties>
您可以在 POM reference
中阅读更多内容
我看过你的 POM 几个关系,也看过我的本地 pom 我是如何定义我的依赖项和 POM
我发现了 2 个东西
- 您已经定义了可以直接添加值的属性
(这里是环境和浏览器)
否则在属性中单独定义如下
${环境}
- 我还没有在 POM 中看到项目的结束。
尝试添加它,应该可以。
enter image description here
您必须删除 <property>
并在 <properties>
下添加您的 属性。
<properties>
<environment>${environment}</environment>
<browser>${browser}</browser>
</properties>
此外,您在 </browser>
之后多了一个“>”
我正在使用 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>
错误- [INFO] 正在扫描项目... [错误] [错误] 处理 POM 时遇到一些问题: [FATAL] Non-parseable POM D:\work\Cucumber_Projects\ui-automation-projects\pom.xml: TEXT 必须紧跟 END_TAG 而不是 START_TAG (位置:START_TAG seen .. .\n ... @13:26) @ 行 13,第 26 列
你在 parson pom.xml 文件中有错误,我将它检查到我的想法中并更正了。您没有 </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>
pom.xml 中的项目属性声明如下:
<properties>
<environment>default-environemnt-value</environment>
<browser>default-browser-value</browser>>
</properties>
您可以在 POM reference
中阅读更多内容我看过你的 POM 几个关系,也看过我的本地 pom 我是如何定义我的依赖项和 POM 我发现了 2 个东西
- 您已经定义了可以直接添加值的属性 (这里是环境和浏览器) 否则在属性中单独定义如下 ${环境}
- 我还没有在 POM 中看到项目的结束。 尝试添加它,应该可以。
enter image description here
您必须删除 <property>
并在 <properties>
下添加您的 属性。
<properties>
<environment>${environment}</environment>
<browser>${browser}</browser>
</properties>
此外,您在 </browser>