2016-05-10 5 views
0

In meinem pom, habe ich die Version einer Abhängigkeit als Eigenschaft wie folgt extrahiert:Auto-complete Abhängigkeit Version in Eigenschaften

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

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

jedoch, indem Sie, dass, verliere ich die Auto-Vervollständigung das würde ich get, wenn ich die Version direkt in der Abhängigkeitsgruppe eingegeben habe.

Gibt es einen Trick, um die Autovervollständigung der Version zu erhalten, wenn eine Eigenschaft wie oben verwendet wird?

Hinweis: Ich bin gleichermaßen interessiert an Antworten für Netbeans und Intellij.

Antwort

2

Ein schneller Weg in IntelliJ, klicken Sie innerhalb der <dependencies></dependencies>, und geben Sie einfach dep wie folgt ein:

<dependencies> 
    dep 
</dependencies> 

dann drücken Sie Tab. Sie werden dann in etwa wie folgt:

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

mit dem Cursor in den artifactId Registerkarte. Beginnen Sie mit der Eingabe Ihres Artefaktnamens, z. slf, und die Liste der Auswahlmöglichkeiten wird so lange eingeschränkt, bis Sie die gewünschte Auswahl sehen. Wählen Sie das aus, und es wird die artifactId ausfüllen und den Cursor auf groupId verschieben. Es wird wahrscheinlich der sein, den Sie wollen, also drücken Sie einfach geben Sie ein. Dann bewegt sich der Cursor zum Tag version und zeigt eine Liste der verfügbaren Versionsnummern an. Wählen Sie die Versionsnummer, und es wird am Ende aussehen etwas wie folgt aus:

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

Ich möchte die Versionsnummer in dependencyManagement,dependencies angegeben werden, nicht build,dependencies so sage ich IntelliJ zu extrahieren, was es kann in dependencyManagement, durch Schlagen ctrlaltM oder optcmdM, die nur die Gruppe und Artefakt in Bauabhängigkeiten verlässt, und setzt alle 3 Werte in dependencyManagement dependenc ies.

Dann in dependencyManagement Abhängigkeiten, ich auf der Versionsnummer klicken und ctrlaltV oder optcmdV verwenden, um die Versionsnummer mit einer Eigenschaft zu ersetzen.

Wichtig - verwenden Sie den Namen, den es für den Namen der Eigenschaft vorschlägt. Wenn Sie das tun, dann werden Sie in der Lage sein zu verwenden

mvn versions:display-property-updates 

, die in Ihrer Repositorys für neuere Versionen aussehen und sie aufzulisten.

1

Die IDE kann eine Eigenschaft nicht automatisch vervollständigen, da ihr der Kontext, in dem die Eigenschaft verwendet wird, nicht bekannt ist. Ein Eigenschaftswert könnte an verschiedenen Stellen in der POM-Datei für verschiedene Abhängigkeiten verwendet werden.

Wenn Sie die automatische Vervollständigung halten möchten, können Sie nicht eine Eigenschaft

EDIT haben: Versuchte in NetBeans und IntelliJ und Sie können nicht eine Eigenschaft in einer POM-Datei automatisch vervollständigt.

1

Auf IntelliJ, zuerst Ihre Abhängigkeit mit der für die automatische Vervollständigung Version erstellen

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

dann die Version unterstreichen und verwenden Sie die Verknüpfung Ctrl+Alt+v

Oder mit der Maus Right Click -> Refactor -> Extract -> Property

+0

Sie können diese Eigenschaft dann automatisch vervollständigen, und es werden Ihnen Versionen von slf4j-api zur Verfügung gestellt? – slarge

+0

Nein, aber Sie können genau dasselbe tun, wenn Sie ein Upgrade durchführen möchten;) – Kraiss

Verwandte Themen