簡體   English   中英

將 map 作為 Maven 插件參數

[英]Having a map as a Maven plugin parameter

我正在使用 maven 3 並且我想傳入一個類型 Map 作為參數。

我現在在我的魔力中有這個:

/**
 * @parameter expression="${rep.env}" alias="environments"
 * @required
 */
private Map<String,String[]> environments = null;

我在配置過程中傳遞了這個:

                <environments>
                    <Testing>
                        <param>
                            unit
                        </param>
                    </Testing>
                </environments>

它抱怨它缺少參數環境,你可以在 maven 中這樣做嗎?

您是否嘗試僅刪除alias="environments"屬性?

另一點是我不確定 Maven 是否允許您將String[]的 Map 設置為鍵。 我認為它只會處理Map<String, String>此處的頁面僅顯示基本的 Map 示例)。

最終,您可以做的是允許逗號分隔值而不是String[]

<configuration>
    <environments>
        <one>a,b,c</one>
        <two>d</two>
    </environments>
</configuration>

然后,當您必須處理您的值時,您只需拆分您的 String 以獲得一個 String 數組(您可以使用Apache Commons-lang StringUtils輕松做到這一點):

/**
 * @parameter expression="${rep.env}"
 * @required
 */
private Map<String, String> environments = null;

public void foo() {
    String[] values = StringUtils.split(environments.get("one"), ',');
    // values == {"a", "b", "c"};
}

暫無
暫無

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

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