如何在 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 个东西

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

enter image description here

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

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

 </properties>

此外,您在 </browser>

之后多了一个“>”