So ändern Sie den Wert der in Eclipse-Vorlagen verwendeten Variablen $ {user}

260

Anstatt die Standardvorlage @author fest zu codieren, möchte ich, dass Eclipse den tatsächlichen Namen des Benutzers aus den Kontoinformationen verwendet (unter Linux - aber auch eine Windows-Lösung ist willkommen). Es wäre auch akzeptabel, es irgendwo in die Eclipse-Konfiguration einzugeben, leider kann ich nicht den richtigen Ort finden.

Rajish
quelle
1
Wenn Sie neugierig sind, können Sie die Standardversion der Variablen erhalten, indem Sie Folgendes aufrufen: System.getProperty ("user.name") und woher Java sie bezieht, ist systemabhängig.
Maciej Biłas
Dieser Artikel zeigt die Reihenfolge, in der Eclipse den Wert der Variablen ermittelt, den ich als hilfreich empfunden habe. martijndashorst.com/blog/2006/04/21/…
Steven Mai
StevenMais Link ist tot ... Hier ist eine archivierte Version: web.archive.org/web/20180927010751/http://…
Sometowngeek

Antworten:

284

Es scheint, dass Sie am besten die Java- user.nameVariable entweder in Ihrer Befehlszeile oder mithilfe der eclipse.iniDatei in Ihrem Eclipse-Installationsstammverzeichnis neu definieren.

Das scheint für mich gut zu funktionieren:

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Duser.name=Davide Inglima
-Xms40m
-Xmx512m    

Aktualisieren:

http://morlhon.net/blog/2005/09/07/eclipse-username/ ist ein toter Link ...

Hier ist eine neue: https://web.archive.org/web/20111225025454/http://morlhon.net:80/blog/2005/09/07/eclipse-username/

Davide Inglima
quelle
16
Das Risiko besteht darin, dass dadurch jedes Plug-In beschädigt wird, das die Benutzer-ID kennen muss (dies ist der dokumentierte Wert der Eigenschaft user.name). Es wäre schön, wenn es eine bessere Möglichkeit gäbe, den Wert anzupassen, den Eclipse für diese Variable verwendet.
Diastrophismus
30
Für mich war das "ein Problem, das ich tun musste: -Duser.name=Ron Kitaydamit es sich richtig verhält
RonK
27
Eine noch BESSERE Lösung wäre, wenn Eclipse eine andere Variable wie $ {programmer} hätte, die man definieren und dann in den Vorlagen verwenden könnte (oder sogar den Leuten erlauben könnte, ihre eigenen Variablen zu erstellen!). Aber das ist Eclipse, seufz.
Scott Biggs
3
Das -Duser.namemuss nach der -vmargsFlagge kommen (getestet mit Eclipse Mars).
Jan Chimiak
2
Toter Link, hier ist ein Archiv: web.archive.org/web/20111225025454/http://morlhon.net:80/blog/…
nloveladyallen
96

Öffnen Sie Eclipse, navigieren Sie zu Fenster -> Einstellungen -> Java -> Codestil -> Codevorlagen -> Kommentare -> Typen und klicken Sie dann auf die Schaltfläche "Bearbeiten". Dort können Sie Ihren Namen im generierten Kommentar von @Author $ {user} in @Author Rajish ändern.

Singletony
quelle
41
Das ist nicht die Antwort auf die Frage
Rajish
15
@ Rajish: Sie haben absolut Recht, aber es kann die einzige vernünftige Problemumgehung sein. Nachdem ich die Optionen bewertet habe, habe ich es getan.
Scott Biggs
13
Dies ist meiner Meinung nach die beste Antwort - anstatt mit der Befehlszeile und eclipse.ini zu spielen, die plattformabhängig und für die von ihnen ausgeführte Aufgabe wohl zu umständlich sind, möchte man einfach oft eine projektbezogene Einstellung vornehmen - und dies in Projekteigenschaften wie oben vorgeschlagen sind derzeit möglicherweise die einzige Möglichkeit, dies zu tun.
Amn
2
Ich denke, das ist nicht die richtige Antwort, da viele Sprachen und Editoren Eclipse verwenden, nicht nur Java. Damit ist das Problem nur für diejenigen gelöst, die Eclipse zum Bearbeiten von Java verwenden, nicht für alle anderen Sprachen.
Lucas Gabriel Sánchez
4
Diese Lösung ist auch nicht geeignet, wenn Sie gemeinsam genutzte Vorlagendefinitionen mit anderen Benutzern verwenden.
Christopher Barber
36
Windows > Preferences > Java > Code Style > Code Templates > Comments

Geben Sie hier die Bildbeschreibung ein

Oder Öffnen Sie die eclipse.iniDatei und fügen Sie Folgendes hinzu.

-Duser.name=Sumit Singh // Your Name

Geben Sie hier die Bildbeschreibung ein

Sumit Singh
quelle
18

EGit-Lösung

Es ist zu erwarten, dass das Erstellen oder Ändern von Vorlagenvariablen auf Projekt-, Arbeitsbereichs- oder Umgebungsbasis eine Standardfunktion von Eclipse ist. Leider ist es nicht. Da Eclipse-Plugins neue Variablen und Vorlagen definieren können, sollte es Plugins geben, die eine Lösung bieten. Wenn ja, müssen sie schwer zu finden sein. mmm-TemplateVariable , das auf dem Eclipse Marketplace verfügbar ist, ist für Maven-Benutzer ein Schritt in die richtige Richtung und bietet die Möglichkeit, Version, Artefakt-ID usw. in Vorlagen aufzunehmen.

Glücklicherweise bietet EGit , ein Eclipse-Tool für Git, sehr flexible Möglichkeiten, um viele verschiedene Variablen in Codevorlagen aufzunehmen. Die einzige Voraussetzung ist, dass Ihr Projekt Git verwendet. Wenn Sie Git nicht verwenden, aber die Softwareentwicklung ernst nehmen, ist es jetzt an der Zeit zu lernen ( Pro Git-Buch ). Wenn Sie gezwungen sind, ein älteres Versionskontrollsystem zu verwenden, versuchen Sie, einige Meinungen zu ändern.

Dank der Bemühungen von harmsk bietet EGit 4.0 und höher die Möglichkeit, Git-Konfigurationsschlüsselwerte in Vorlagen zu verwenden. Auf diese Weise können Vorlagenwerte basierend auf Repository-Einstellungen (Projekt), Benutzereinstellungen (Konto) und / oder globalen Einstellungen (Workstation) festgelegt werden.

Das folgende Beispiel zeigt, wie Sie Eclipse und Git für eine Entwicklungsarbeitsstation für mehrere Benutzer einrichten und stattdessen einen benutzerdefinierten Git-Konfigurationsschlüssel verwenden ${user}, um mehr Flexibilität zu bieten. Obwohl das Beispiel auf einer Windows 10-Installation von Eclipse Mars und Git für Windows basiert, gilt das Beispiel für Linux und OSX, auf denen Eclipse und Git mit ihren jeweiligen Befehlszeilentools ausgeführt werden.

Um mögliche Verwechslungen zwischen dem user.nameKonfigurationsschlüssel von Git und der user.nameSystemeigenschaft von Java zu vermeiden , wird ein benutzerdefinierter Git-Konfigurationsschlüssel - user.author- verwendet, um den Namen und / oder die Anmeldeinformationen eines Autors anzugeben.

Vorlagen konfigurieren

Das Format einer Git-Vorlagenvariablen lautet wie folgt

${<name>:git_config(<key>)}

Dabei <name>steht ein beliebiger Variablenname und <key>der Git-Konfigurationsschlüssel, dessen Wert verwendet werden soll. Vor diesem Hintergrund ändern Sie die Vorlage Kommentare → Typen in

/**
 * @author ${author:git_config(user.author)}
 *
 * ${tags}
 */

wird nun versuchen, den Namen des Autors aus dem user.authorKonfigurationsschlüssel von Git aufzulösen . Ohne weitere Konfiguration enthalten neu erstellte Kommentare keinen Namen danach @author, da noch keiner definiert wurde.

Git konfigurieren

Über die Befehlszeile

Git-Systemkonfiguration - In diesem Konfigurationsschritt werden Änderungen an der systemweiten Konfiguration von Git für alle Konten auf der Workstation vorgenommen, sofern sie nicht durch Benutzer- oder Repository-Einstellungen überschrieben werden. Da systemweite Konfigurationen Teil der zugrunde liegenden Git-Anwendung sind (z. B. Git für Windows), erfordern Änderungen Administratorrechte. Führen Sie Git Bash, cmd oder PowerShell als Administrator aus. Der folgende Befehl legt den systemweiten Autor fest.

git config --system user.author “SET ME IN GLOBAL(USER) or REPOSITORY(LOCAL) SETTINGS”

Der Zweck dieses „Autors“ besteht darin, daran zu erinnern, dass er an anderer Stelle festgelegt werden sollte. Dies ist besonders nützlich, wenn neue Benutzerkonten auf der Workstation verwendet werden.

Um diese Einstellung zu überprüfen, erstellen Sie ein leeres Java-Projekt, das Git verwendet, oder öffnen Sie ein vorhandenes Git-basiertes Projekt. Erstellen Sie eine Klasse und verwenden Sie im Kontextmenü ALT-SHIFT-J Quelle → Elementkommentar generieren oder starten Sie einen JavaDoc-Kommentar. Dem resultierenden @authorTag sollte die Warnung folgen.

Die verbleibenden Konfigurationsänderungen können ohne Administratorrechte durchgeführt werden.

Globale (Benutzer-) Konfiguration von Git - Globale oder Benutzerkonfigurationen sind diejenigen, die einem bestimmten Benutzer zugeordnet sind und systemweite Konfigurationen überschreiben. Diese Einstellungen gelten für alle Git-basierten Projekte, sofern sie nicht durch Repository-Einstellungen überschrieben werden. Wenn der Autorenname aufgrund verschiedener Projekttypen unterschiedlich ist, z. B. für Arbeit, Open Source-Beiträge oder persönliche Beiträge, legen Sie den hier am häufigsten verwendeten Namen fest.

git config --global user.author “Mr. John Smith”

Kehren Sie nach der Konfiguration des globalen Werts zum früh verwendeten Testprojekt zurück und wenden Sie einen Klassenkommentar an. Das @authorTag sollte jetzt die globale Einstellung anzeigen.

Git-Repository (lokal) -Konfiguration - Schließlich kann ein Repository oder eine lokale Konfiguration verwendet werden, um einen Autor für ein bestimmtes Projekt zu konfigurieren. Im Gegensatz zu den vorherigen Konfigurationen muss eine Repository-Konfiguration innerhalb des Repositorys vorgenommen werden. Navigieren Sie mit Git Bash, PowerShell usw. in das Repository des Testprojekts.

git config --local user.author “smithy”

Vor diesem Hintergrund verwenden neue Kommentare im Testprojekt den lokal definierten Autorennamen. Andere Git-basierte Projekte verwenden weiterhin den globalen Autorennamen.

Aus Eclipse heraus

Die obigen Konfigurationsänderungen können auch in Eclipse über die Einstellungen: Team → Git-Konfiguration festgelegt werden . Eclipse muss als Administrator ausgeführt werden, um systemweite Git-Konfigurationen zu ändern.

In Summe

Obwohl sich dieses Beispiel speziell mit dem häufigsten Problem, dem Ändern ${user}, befasste , kann dieser Ansatz für mehr verwendet werden. Es sollte jedoch darauf geachtet werden, keine von Git definierten Konfigurationsschlüssel zu verwenden, es sei denn, dies ist ausdrücklich vorgesehen.

Frelling
quelle
Das ist schön, aber warum nicht einfach verwenden, ${author:git_config(user.name)}da es bereits Standard ist?
RobertDeRose
@RobD - Wie im Beitrag erwähnt (5. Absatz von oben) - um Verwirrung zu vermeiden. Sie können verwenden, was Sie wollen. In einer Produktionsumgebung ist es jedoch besser, Projektkonfigurationselemente von Systemkonfigurationselementen zu trennen.
Frelling
16

Anstatt sich ${user}in Eclipse zu ändern , ist es ratsam, einzuführen

-Duser.name=Whateverpleaseyou

in eclipse.inidem in Ihrem Eclipse-Ordner vorhanden ist.

Anuj Balan
quelle
3
-1 Nein, eclipse.ini wird sogar gespeichert, da UTF-8 den französischen Akzent wie àôéù nicht richtig verarbeitet ...
Aubin
26
Was bringt es, vier Jahre später dieselbe Lösung wie die akzeptierte zu veröffentlichen?
PhiLho
2
@Aubin im Moment starte ich eine Sonnenfinsternis, die Akzente wie áóë .. etc ohne Probleme unterstützt. Das ist also eine korrekte und hilfreiche Antwort.
Lucas Gabriel Sánchez
1
@PhiLho Diese Antwort ist kompakt und prägnant, nur 3 Sätze. Außerdem ist der Link in der ausgewählten Antwort unterbrochen.
Johnnieb
3

dovescrywolf gab einen Tipp als Kommentar zu einem von Davide Inglima verlinkten Artikel

Es war sehr nützlich für mich unter MacOS.

  • Schließen Sie Eclipse, wenn es geöffnet ist.
  • Öffnen Sie Termnal (Bash-Konsole) und gehen Sie wie folgt vor:

    $ pwd /Users/You/YourEclipseInstalationDirectory  
    $ cd Eclipse.app/Contents/MacOS/  
    $ echo "-Duser.name=Your Name" >> eclipse.ini  
    $ cat eclipse.ini
  • Schließen Sie das Terminal und starten / öffnen Sie Eclipse erneut.

Łukasz Siwiński
quelle
1

Dies ist die Datei, nach der wir alle suchen (in Ihrem Eclipse-Arbeitsbereich):

.plugins / org.eclipse.core.runtime / .settings / org.eclipse.jdt.ui.prefs

Sie finden ein @author-Tag mit dem Namen, den Sie ändern möchten. Starten Sie Eclipse neu und es wird funktionieren.

Für Akzente müssen Sie das Unicode-Format verwenden (zB '\ u00E1' für á).

Sie können die 'ini'-Datei auch nach vorheriger Antwort ändern oder den Benutzernamen var für eine globale Lösung festlegen. Oder überschreiben Sie das @author-Tag im Menü "Einstellungen" für eine lokale Lösung. Beides sind gültige Lösungen für dieses Problem.

Aber wenn Sie nach dem Namen des Autors suchen, der die meisten von uns stört, befindet er sich in dieser Datei.

FranMowinckel
quelle
Diese Option ändert tatsächlich die in den Eclipse-Einstellungen angezeigte Einstellung (entfernt das Tag {Benutzer}) von Hand.
Alfabravo
Der Speicherort der Datei ist für Eclipse Luna veraltet.
Martin Carney
Es ist $WORKSPACE/.metadata/.plugins/org.eclipse.core.runtime/.settings/… auf dem Mars und es gibt auch $WORKSPACE/$PROJECT/.settings/… für jedes Projekt. Wie bereits erwähnt, sind dies die Arbeitsbereichs- oder Projekteinstellungen, die bequemer von Hand bearbeitet werden können (und vom OP ausdrücklich ausgeschlossen werden).
Dirk
0

Bearbeiten Sie die Datei /etc/eclipse.ini, um den Eintrag als zu enthalten.

-Duser.name=myname

Starten Sie die "Eclipse" neu und verwenden Sie beim Erstellen einer neuen Datei mit dem Assistenten (c / c ++ / java) "myname" anstelle von $ {user}.

Parasrish
quelle
-1

Fenster -> Einstellungen -> Java -> Codestil -> Codevorlagen -> Kommentare -> Typen Ordnen Sie die Zeit vor $ {user} Ihrem Namen zu.

Vor

/**
 * @author ${user}
 *
 * ${tags}
 */

Nach

/**
 * @author Waqas Ahmed
 *
 * ${tags}
 */

Geben Sie hier die Bildbeschreibung ein

Waqas Ahmed
quelle
-4

nur eine andere Option. goto PREFERENCES >> JAVA >> HERAUSGEBER >> VORLAGEN , Select @author und ändern Sie die Variable $ {user}.

ABl
quelle