codecamp

IntelliJ IDEA提取属性

在 Maven 项目中,在编辑 pom.xml 的时候,需要定义一个属性,并用这个属性来替换一些有价值的工件版本的实例。

出于这些目的,IntelliJ IDEA 提供了提取属性重构。

提取属性重构在指定的 pom.xml 文件中创建一个新的属性定义 ,在 pom. xml 文件的层次结构中查找所选字符串的所有匹配项,并用上述格式的属性替换它们: ${<property_name>}

"提取属性重构" 允许您将表达式和本地声明移动到属性。

提取属性重构示例

示例-1:

这个例子中,工件版本被替换为在同一个pom.xml文件中声明的属性:

重构前:

<artifactId>submodule<artifactId>

重构后:

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

示例-2:

这个例子中,pom.xml文件中的工件版本被替换为在其父pom.xml文件中声明的属性:

重构前:

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

重构后:

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. 打开所需的pom.xml文件进行编辑,并将插入符号放在要替换的值的某个位置。(你也可以选择一个特定的子字符串;在这种情况下,重构将应用于所选内容。)
  2. 按 Ctrl+Alt+V,或在上下文菜单上选择:重构| 提取| 属性(或在主菜单上)。请注意,所选内容将自动扩展到封闭标记。
  3. 在 "提取属性" 对话框中,请执行以下操作:
    • 在 "名称" 字段中,指定要分配给新属性的名称。IntelliJ IDEA 建议了一些合适的名字。您可以从下拉列表中选择一个,或者手动输入所需的名称。
    • 在 "项目" 下拉列表中,选择将在其中声明新属性的项目。
    点击“确定”。
  4. 后续的工作流程取决于特定的pom.xml文件重构被调用。
    • 重构被调用的事件将被默默地替换。如果该字符串出现多次,则将为这些事件显示 "替换使用率" 对话框。您必须指定是否要替换每个匹配项。
    • 如果该pom.xml是一个父文件,并且将在其中声明新属性,则 IntelliJ IDEA 将无提示地替换父文件中的值,并在 "查找" 工具窗口中显示其他实例。您必须指定是否要替换每个匹配项。
    • 如果pom.xml从父文件继承,IntelliJ IDEA 会以静默方式替换子文件中的事件。此更改不传播给父级pom.xml

    在每种情况下,IntelliJ IDEA 将新的属性声明添加到指定的pom.xml文件。

IntelliJ IDEA提取函数变量
IntelliJ IDEA提取变量
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }