IntelliJ IDEA提取屬性

2018-11-07 11:18 更新

在 Maven 項(xiàng)目中,在編輯 pom.xml 的時(shí)候,需要定義一個(gè)屬性,并用這個(gè)屬性來(lái)替換一些有價(jià)值的工件版本的實(shí)例。

出于這些目的,IntelliJ IDEA 提供了提取屬性重構(gòu)。

提取屬性重構(gòu)在指定的 pom.xml 文件中創(chuàng)建一個(gè)新的屬性定義 ,在 pom. xml 文件的層次結(jié)構(gòu)中查找所選字符串的所有匹配項(xiàng),并用上述格式的屬性替換它們: ${<property_name>}

"提取屬性重構(gòu)" 允許您將表達(dá)式和本地聲明移動(dòng)到屬性。

提取屬性重構(gòu)示例

示例-1:

這個(gè)例子中,工件版本被替換為在同一個(gè)pom.xml文件中聲明的屬性:

重構(gòu)前:

<artifactId>submodule<artifactId>

重構(gòu)后:

<artifactId>${submodule}</artifactId>
<properties>
    <submodule>submodule</submodule>
</properties>

示例-2:

這個(gè)例子中,pom.xml文件中的工件版本被替換為在其父pom.xml文件中聲明的屬性:

重構(gòu)前:

<parent>
    <artifactId>HelloWorld</artifactId>
    <version>1.0</version>
</parent>
<artifactId>submodule<artifactId>

重構(gòu)后:

Parent:

<artifactId>HelloWorld</artifactId>
...
<modules>
    <module>${submodule}</module>
</modules>
...
<properties>
    <submodule>submodule</submodule>
</properties>
Child:
<parent>
    <artifactId>HelloWorld</artifactId>
    <version>1.0</version>
</parent>
<artifactId>${submodule}</artifactId>

在 pom.xml 文件中提取屬性

  1. 打開(kāi)所需的pom.xml文件進(jìn)行編輯,并將插入符號(hào)放在要替換的值的某個(gè)位置。(你也可以選擇一個(gè)特定的子字符串;在這種情況下,重構(gòu)將應(yīng)用于所選內(nèi)容。)
  2. 按 Ctrl+Alt+V,或在上下文菜單上選擇:重構(gòu)| 提取| 屬性(或在主菜單上)。請(qǐng)注意,所選內(nèi)容將自動(dòng)擴(kuò)展到封閉標(biāo)記。
  3. 在 "提取屬性" 對(duì)話框中,請(qǐng)執(zhí)行以下操作:
    • 在 "名稱" 字段中,指定要分配給新屬性的名稱。IntelliJ IDEA 建議了一些合適的名字。您可以從下拉列表中選擇一個(gè),或者手動(dòng)輸入所需的名稱。
    • 在 "項(xiàng)目" 下拉列表中,選擇將在其中聲明新屬性的項(xiàng)目。
    點(diǎn)擊“確定”。
  4. 后續(xù)的工作流程取決于特定的pom.xml文件重構(gòu)被調(diào)用。
    • 重構(gòu)被調(diào)用的事件將被默默地替換。如果該字符串出現(xiàn)多次,則將為這些事件顯示 "替換使用率" 對(duì)話框。您必須指定是否要替換每個(gè)匹配項(xiàng)。
    • 如果該pom.xml是一個(gè)父文件,并且將在其中聲明新屬性,則 IntelliJ IDEA 將無(wú)提示地替換父文件中的值,并在 "查找" 工具窗口中顯示其他實(shí)例。您必須指定是否要替換每個(gè)匹配項(xiàng)。
    • 如果pom.xml從父文件繼承,IntelliJ IDEA 會(huì)以靜默方式替換子文件中的事件。此更改不傳播給父級(jí)pom.xml。

    在每種情況下,IntelliJ IDEA 將新的屬性聲明添加到指定的pom.xml文件。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)