簡體   English   中英

如何使用maven或pom.xml更新屬性文件

[英]how to update a property file using maven or pom.xml

我創建了一個自動化框架,在該框架中,我從屬性文件“ config.properties”中讀取值。

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

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

我正在從屬性文件中讀取瀏覽器值,並將其傳遞給我的Selenium腳本以運行它。

現在,我想使用pom.xml將值“ ie && IT"替換為“ ${browser}" &&“ ${env}" 有什么方法/插件可以使用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

您好,您可以使用Maven資源插件

該插件實現“ Maven過濾 ”。

<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>

您可以使用Maven Replacer插件進行嘗試,請參見https://code.google.com/archive/p/maven-replacer-plugin/

在這里查看示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM