如何使用maven或pom.xml

时间:2018-01-15 09:07:57

标签: java maven pom.xml

我创建了一个自动化框架,我从属性文件中读取值“config.properties”。

我的config.propertioes文件包含以下内容:

BrowserName=${browser}
Environment=${env}

我正在从属性文件中读取浏览器值并将其传递给我的selenium脚本来运行它。

现在我想将“${browser}"&&”${env}"替换为值“ie”&& “IT"使用pom.xml。是否有任何方法/插件可以使用pom.xml编辑属性文件。

请建议。

@Keshava 我将按照以下建议在下面给出完整的示例: 1.有2个属性文件:◦project.properties:这是我们在存储库中提交的文件。它包含如下数据:◾project.connection.username= @@ DB_USERNAME @@ project.connection.password = @@ DB_PASSWORD @@

◦build.properties:这是我们未在存储库中提交的文件,并在每个部署环境中进行维护,无论是开发人员环境,UAT环境还是生产环境。该文件的内容如下:◾db.username= mydbuser db.password = mydbpassword

2.在项目的pom.xml中添加以下插件和执行:

<plugin>
                <groupId>com.google.code.maven-replacer-plugin</groupId>
                <artifactId>maven-replacer-plugin</artifactId>
                <version>1.3.5</version>
                <executions>
                    <execution>
                        <id>replaceTokens</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>replace</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <file>target/classes/project.properties</file>
                    <replacements>
                        <replacement>
                            <token>@@DB_USERNAME@@</token>
                            <value>${db.username}</value>
                        </replacement>
                        <replacement>
                            <token>@@DB_PASSWORD@@</token>
                            <value>${db.password}</value>
                        </replacement>
                    </replacements>
                </configuration>
</plugin>

从上面我知道"@@DB_USERNAME@@"来自"project.properties"。但是,从哪个属性文件中将获取此"${db.username}"值?我的pom将如何理解从哪里采取"${db.username}"

我是否需要在maven目标中传递此值,如下所示:

mvn clean install -Ddb.username=myuserid

2 个答案:

答案 0 :(得分:2)

您好,您可以使用maven resource plugin

此插件实现“Maven Filtering”。

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>3.0.2</version>
        <executions>
          <execution>
            <id>selenium-profile-chrome</id>
            <!-- here the phase you need -->
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/selenium</outputDirectory>
              <resources>          
                <resource>
                  <directory>src/non-packaged-resources</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>              
            </configuration>            
          </execution>
        </executions>
      </plugin>
    </plugins>
    ...
  </build>
  ...
</project>

答案 1 :(得分:0)

您可以尝试使用maven replacer插件 见https://code.google.com/archive/p/maven-replacer-plugin/

查看示例here