簡體   English   中英

Maven-將默認參數更改為其他定義的pom.xml

[英]Maven - changing defaulted argument to other pom.xml defined

我有一個測試分發版,用於與Maven一起運行的testNG。 每當我需要默認的測試發行版時,我都可以這樣做,每當我需要幾個或僅一個測試時,我可以在命令行中更改DoverallParams類的名稱(盡管名稱已更改)。

<properties>
    <param1>x</param1>
    <param2>y</param2>
    <param3>z</param3>
    <defaultParams>${param1},${param2}</defaultParams>
    <defaultParams2>${param1},${param3}</defaultParams2> <-This does not exist yet!
    <overallParams>${defaultParams}</overallParams>
</properties>

我現在需要在不同的平台上使用一組不同的測試,而不必重復或分支項目。 因此,該想法是添加defaultPrams2並以某種方式在命令行中選擇它。

問題

有什么辦法在命令行中使我選擇defaultParams2作為overallParams嗎? 更簡單了,有沒有辦法在命令行中引用pom屬性? 您對如何執行此操作還有其他想法嗎?

有什么辦法在命令行中使我選擇defaultParams2作為overallParams嗎?

是的, Maven個人資料可以為您提供幫助。

您可以在pom中包含以下內容:

<profiles>
    <profile>
        <id>meaningful-name-here</id>
        <properties>
            <overallParams>${defaultParams2}</overallParams>
        </properties>
    </profile>
</profiles>

然后,您可以從命令行調用Maven,如下所示:

mvn clean install -Pmeaningful-name-here

基本上, -P<id>選項將激活配置文件,然后在該配置文件上覆蓋overallParams屬性的值,並在運行時和根據需要切換到defaultParams2值。

這種方法比以下方法更容易出錯:

mvn clean install -DoverallParams=params

您每次需要在其中鍵入所需參數的位置(因此將按需覆蓋overallParams的值)。 只需選擇一個比meaningful-name-here更好(且更短)的ID即可,

有沒有一種方法可以在命令行中引用pom屬性?

是的,如上所述,通過顯式覆蓋( -D )或配置文件( -P )。

暫無
暫無

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

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