Maven Profile从Properties文件中读取数据

时间:2017-11-03 13:47:05

标签: java maven selenium properties maven-profiles

我有一个Selenium项目,它使用Maven作为构建工具,我想从.properties文件中读取不同的环境细节(协议,域,子域等)。是否可以使用Maven配置文件在不同的环境中运行我的测试,例如dev,staging,prod,这是基于我在触发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");

非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

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

然后在你的属性读者类中让它初始化基于System.getProperty的属性文件(&#34; env&#34;);

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等

希望有帮助吗?