Maven Profile 从 Properties 文件中读取数据

Maven Profile reads data from Properties file

我有一个使用 Maven 作为构建工具的 Selenium 项目,我想从 .properties 文件中读取不同的环境详细信息(协议、域、子域等)。是否可以使用 Maven 配置文件 运行 我在不同环境(例如开发、暂存、生产)上的测试基于我在触发 mvn 命令时指定的配置文件?

dev.properties:

protocol=http
domain=domain.com
subdomain=www

pom.xml:

  <profiles>
    <profile>
      <id>prod</id>
      <activation>
       <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>pre_prod</id>
    </profile>
    <profile>
      <id>dev</id>
    </profile>
  </profiles>

mvn:

mvn clean test -Pdev

然后应使用

在 java 代码中检索数据
System.getProperty("protocol");
System.getProperty("domain");
System.getProperty("subdomain");

非常感谢任何帮助。

谢谢!

如果你只是想根据命令行参数读取不同的属性文件,你能不能只传入一个字符串,例如 -Denv=dev

然后在您的属性中 reader class 让它根据 System.getProperty("env");

初始化属性文件
Properties generalProperties = new Properties();
    String generalPropertiesFileName = "data/"+ 
      System.getProperty("env") + ".properties";
   initProperties(generalProperties, generalPropertiesFileName);

或者,您也可以使用相同的方式将属性从命令行传递到 POM -

<properties>
  <property>
    <protocol></protocol>
    <domain></domain>
    <subdomain></subdomain>
  <property>
<properties>

然后这些可以从命令行作为 -Dprotocol=foo 等传入

希望对您有所帮助?