属性中的自动完成依赖版本

brtdzjyr  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(266)

在我的pom中,我将依赖项的版本提取为如下属性:

<properties>
  <slf4j.version>1.7.21</slf4j.version>
</properties>

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>${slf4j.version}</version>
</dependency>

然而,这样做,我失去了自动完成,如果我直接在依赖组中输入版本,我将得到。
在使用上述属性时,是否有技巧自动完成版本?
注意:我对netbeans和intellij的答案同样感兴趣。

knpiaxh1

knpiaxh11#

intellij中的一个快速方法是在 <dependencies></dependencies> ,只需键入 dep 这样地:

<dependencies>
    dep
</dependencies>

然后按tab键。然后你会看到这样的东西:

<dependency>
        <groupId></groupId>
        <artifactId></artifactId>
        <version></version>
</dependency>

光标位于 artifactId 选项卡。开始键入您的工件名称,例如。 slf ,选项列表将缩小,直到您看到所需的选项。选择它,它将填充artifactid,并将光标移动到 groupId . 它可能就是你想要的,所以按回车键。然后光标将移动到 version 标记,并显示可用版本号的列表。选择版本号,它将以如下方式结束:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.18</version>
</dependency>

我希望在中指定版本号 dependencyManagement,dependencies ,不是 build,dependencies 因此,我告诉intellij通过点击ctrlaltm或optcmdm,将它能提取的内容提取到dependencymanagement中,这只将组和工件保留在构建依赖项中,并将所有3个值都放在dependencymanagement依赖项中。
然后,在DependencyManagementDependencies中,我单击版本号并使用ctrlaltv或optcmdv将版本号替换为属性。
重要提示-使用它建议的名称作为属性名称。如果你这样做了,那么你就可以使用

mvn versions:display-property-updates

它将在您的存储库中查找更新的版本并列出它们。

brvekthn

brvekthn2#

在intellij上,首先用自动完成的版本创建依赖关系

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.21</version>
</dependency>

然后在版本下划下划线并使用快捷方式 Ctrl+Alt+v 或者用你的鼠标 Right Click -> Refactor -> Extract -> Property

omqzjyyz

omqzjyyz3#

ide无法自动完成属性,因为它不知道使用该属性的上下文。属性值可以用于pom文件中不同位置的不同依赖项。
如果你想保持自动完成,你不能有一个属性
编辑:在netbeans和intellij中尝试过,但不能自动完成pom文件中的属性。

相关问题