Jak zmienić wartość zmiennej $ {user} używanej w szablonach Eclipse

260

Zamiast na stałe wpisywać domyślny szablon @author chciałbym, aby Eclipse używał prawdziwej nazwy użytkownika pobranej z informacji o koncie (w Linuksie - ale rozwiązanie Windows jest również mile widziane). Dopuszczalne byłoby też wpisanie go gdzieś w konfiguracji Eclipse, niestety nie mogę znaleźć odpowiedniego miejsca.

Rajish
źródło
1
Jeśli jesteś ciekawy, domyślną wersję zmiennej można uzyskać, wywołując: System.getProperty („nazwa.użytkownika”), a skąd Java bierze ją, zależy od systemu.
Maciej Biłas,
W tym artykule pokazano, w jakiej kolejności zaćmienie określa wartość zmiennej, co uważam za pomocne. martijndashorst.com/blog/2006/04/21/…
Steven Mai
Link StevenMai jest martwy ... Oto zarchiwizowana wersja: web.archive.org/web/20180927010751/http://…
Sometowngeek

Odpowiedzi:

285

Wydaje się, że najlepszym rozwiązaniem jest przedefiniowanie user.namezmiennej Java w wierszu polecenia lub użycie eclipse.inipliku w katalogu głównym instalacji programu eclipse.

Wydaje mi się, że to działa dobrze:

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

Aktualizacja:

http://morlhon.net/blog/2005/09/07/eclipse-username/ to martwy link ...

Oto nowy: https://web.archive.org/web/20111225025454/http://morlhon.net:80/blog/2005/09/07/eclipse-username/

Davide Inglima
źródło
16
Istnieje ryzyko, że spowoduje to uszkodzenie dowolnej wtyczki, która musi znać identyfikator użytkownika (który jest udokumentowaną wartością właściwości user.name). Byłoby miło, gdyby istniał lepszy sposób dostosowania wartości, jaką Eclipse użyje dla tej zmiennej.
Diastrofizm
30
Dla mnie "spowodował problem, musiałem zrobić: -Duser.name=Ron Kitayaby zachowywał się poprawnie
RonK
27
Jeszcze lepszym rozwiązaniem byłoby posiadanie przez Eclipse innej zmiennej, takiej jak $ {programista}, którą można zdefiniować, a następnie użyć w szablonach (lub nawet pozwolić ludziom na tworzenie własnych zmiennych!). Ale to JEST Zaćmienie, westchnienie.
Scott Biggs,
3
-Duser.nameMusi pochodzić po tej -vmargsflagi (testowane z Eclipse Mars).
Jan Chimiak,
2
Martwy link, oto archiwum: web.archive.org/web/20111225025454/http://morlhon.net:80/blog/…
nloveladyallen
96

Otwórz Eclipse, przejdź do Okno -> Preferencje -> Java -> Styl kodu -> Szablony kodu -> Komentarze -> Typy, a następnie naciśnij przycisk „Edytuj”. Tam możesz zmienić swoje nazwisko w generowanym komentarzu z @Author $ {użytkownik} na @Author Rajish.

singletonia
źródło
41
To nie jest odpowiedź na pytanie
Rajish,
15
@Rajish: masz całkowitą rację, ale może to być jedyne rozsądne obejście. Po dokonaniu oceny opcji zrobiłem to.
Scott Biggs,
13
Moim zdaniem jest to najlepsza odpowiedź - zamiast mieszać się z wierszem poleceń i środowiskiem eclipse.ini, które są zależne od platformy i prawdopodobnie zbyt kłopotliwe dla wykonywanego zadania, po prostu często chce się wykonać ustawienia dla poszczególnych projektów - i robić to w Właściwości projektu, jak sugerowano powyżej, mogą być obecnie jedynym sposobem na to.
am
2
Myślę, że nie jest to właściwa odpowiedź, ponieważ istnieje wiele języków i edytorów używających Eclipse, nie tylko Java. To rozwiązuje problem tylko dla tych, którzy używają Eclipse do edycji Java, a nie wszystkich innych języków.
Lucas Gabriel Sánchez
4
To rozwiązanie również nie jest odpowiednie, jeśli używasz wspólnych definicji szablonów z innymi użytkownikami.
Christopher Barber
36
Windows > Preferences > Java > Code Style > Code Templates > Comments

wprowadź opis zdjęcia tutaj

Lub Otwórz eclipse.iniplik i dodaj następujące.

-Duser.name=Sumit Singh // Your Name

wprowadź opis zdjęcia tutaj

Sumit Singh
źródło
18

Rozwiązanie EGit

Można oczekiwać, że tworzenie lub zmiana zmiennych szablonów w projekcie, obszarze roboczym lub środowisku jest standardową funkcją Eclipse. Niestety tak nie jest. Co więcej, biorąc pod uwagę, że wtyczki Eclipse mogą definiować nowe zmienne i szablony, powinny istnieć wtyczki zapewniające rozwiązanie. Jeśli tak, muszą być trudne do znalezienia. mmm-TemplateVariable , który jest dostępny w Eclipse Marketplace, jest krokiem we właściwym kierunku dla użytkowników Maven, dając możliwość włączenia wersji, artefactId itp. do szablonów.

Na szczęście EGit , który jest narzędziem Eclipse dla Git, zapewnia bardzo elastyczne sposoby włączania wielu różnych zmiennych do szablonów kodu. Jedynym wymaganiem jest to, że Twój projekt używa Git. Jeśli nie korzystasz z Git, ale poważnie myślisz o rozwoju oprogramowania, teraz jest czas na naukę ( książka Pro Git ). Jeśli jesteś zmuszony korzystać ze starszego systemu kontroli wersji, spróbuj zmienić zdanie.

Dzięki wysiłkom Harmsk , EGit 4.0 i wyżej zawiera możliwość użycia kluczowych wartości konfiguracji Git w szablonach. Umożliwia to ustawienie wartości szablonu na podstawie ustawień repozytorium (projekt), ustawień użytkownika (konto) i / lub ustawień globalnych (stacja robocza).

Poniższy przykład pokazuje, jak skonfigurować Eclipse i Git dla wielostanowiskowej stacji roboczej i użyć niestandardowego klucza konfiguracyjnego Git zamiast w ${user}celu zapewnienia większej elastyczności. Chociaż przykład jest oparty na instalacji Eclipse Mars i Git dla Windows 10, przykład dotyczy Linuksa i OSX z uruchomionymi Eclipse i Git przy użyciu odpowiednich narzędzi wiersza poleceń.

Aby uniknąć możliwego pomylenia user.nameklucza konfiguracyjnego Git z user.namewłaściwością systemową Java , niestandardowy klucz konfiguracyjny Git - user.author- zostanie użyty do podania nazwiska autora i / lub poświadczeń.

Konfigurowanie szablonów

Format zmiennej szablonu Git jest następujący

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

gdzie <name>jest dowolną nazwą zmiennej i <key>jest kluczem konfiguracji Git, którego wartość powinna zostać użyta. Biorąc to pod uwagę, zmieniając szablon Komentarze → Typy na

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

spróbuje teraz rozwiązać nazwisko autora z user.authorklucza konfiguracyjnego Git . Bez dalszej konfiguracji żadne nowo utworzone komentarze nie będą zawierać nazw po @author, ponieważ żadne nie zostały jeszcze zdefiniowane.

Konfigurowanie Gita

Z linii poleceń

Konfiguracja systemu Git - ten krok konfiguracji wprowadza zmiany w ogólnosystemowej konfiguracji Git, mającej zastosowanie do wszystkich kont na stacji roboczej, chyba że zostaną zastąpione przez ustawienia użytkownika lub repozytorium. Ponieważ konfiguracje ogólnosystemowe są częścią podstawowej aplikacji Git (np. Git dla Windows), zmiany będą wymagać uprawnień administratora. Uruchom Git Bash, cmd lub PowerShell jako administrator. Następujące polecenie ustawi autora ogólnosystemowego.

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

Celem tego „autora” jest przypomnienie, że należy go ustawić gdzie indziej. Jest to szczególnie przydatne, gdy na stacji roboczej używane są nowe konta użytkowników.

Aby zweryfikować to ustawienie, utwórz pusty projekt Java korzystający z Git lub otwórz istniejący projekt oparty na Git. Utwórz klasę i użyj opcji Źródło → Generuj komentarz elementu z menu kontekstowego ALT-SHIFT-J lub rozpocznij komentarz JavaDoc. Wynikowy @authortag powinien poprzedzić ostrzeżenie.

Pozostałe zmiany konfiguracji można wykonać bez uprawnień administratora.

Globalna konfiguracja (użytkownika) Git - konfiguracje globalne lub użytkownika są konfiguracjami powiązanymi z określonym użytkownikiem i zastępują konfiguracje ogólnosystemowe. Te ustawienia dotyczą wszystkich projektów opartych na Git, chyba że zostaną zastąpione przez ustawienia repozytorium. Jeśli nazwa autora jest inna z powodu różnych typów projektów, takich jak praca, wkłady typu open source lub osobiste, ustaw najczęściej używane tutaj.

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

Po skonfigurowaniu wartości globalnej wróć do wcześniej używanego projektu testowego i zastosuj komentarz klasy. @authorTag powinien teraz pokazać globalne ustawienia.

Konfiguracja repozytorium Git (lokalna) - na koniec repozytorium lub konfiguracja lokalna może zostać użyta do skonfigurowania autora dla określonego projektu. W przeciwieństwie do poprzednich konfiguracji konfiguracja repozytorium musi zostać wykonana z poziomu repozytorium. Za pomocą Git Bash, PowerShell itp. Przejdź do repozytorium projektu testowego.

git config --local user.author “smithy”

Biorąc to pod uwagę, nowe komentarze w projekcie testowym będą używać nazwy autora zdefiniowanej lokalnie. Inne projekty oparte na Git nadal będą używać globalnej nazwy autora.

From Within Eclipse

Powyższe zmiany konfiguracji można również ustawić w Eclipse za pomocą Preferencji: Zespół → Konfiguracja Git . Eclipse należy uruchomić jako Administrator, aby zmienić ogólnosystemowe konfiguracje Git.

W sumie

Chociaż ten przykład dotyczy konkretnie najczęstszego problemu, polegającego na zmianie ${user}, to podejście można zastosować do większej liczby. Należy jednak zachować ostrożność, aby nie używać kluczy konfiguracyjnych zdefiniowanych przez Git, chyba że jest to specjalnie przeznaczone.

Frelling
źródło
To miłe, ale dlaczego nie użyć, ${author:git_config(user.name)}ponieważ jest już standardowe?
RobertDeRose
@RobD - Jak wspomniano w poście (piąty akapit od góry) - aby uniknąć zamieszania. Możesz swobodnie korzystać z tego, co chcesz. Chociaż w środowisku produkcyjnym lepiej jest oddzielić elementy konfiguracji projektu od elementów konfiguracji systemu.
Frelling
16

Zamiast zmieniać ${user}zaćmienie, wskazane jest wprowadzenie

-Duser.name=Whateverpleaseyou

w eclipse.iniktórym znajduje się w folderze zaćmienia.

Anuj Balan
źródło
3
-1 Nie, eclipse.ini jest nawet zapisane, ponieważ UTF-8 nie obsługuje poprawnie francuskiego akcentu jak àôéô ...
Aubin
26
Jaki sens ma opublikowanie, cztery lata później, tego samego rozwiązania niż przyjęte?
PhiLho
2
@Aubin faktycznie teraz prowadzę zaćmienie, które obsługuje akcenty takie jak áóë .. itp. Bez żadnych problemów. To jest poprawna i pomocna odpowiedź.
Lucas Gabriel Sánchez
1
@PhiLho Ta odpowiedź jest zwarta i zwięzła, zawiera tylko 3 zdania. Ponadto link w wybranej odpowiedzi jest uszkodzony.
johnnieb
3

dovescrywolf dał napiwek jako komentarz do artykułu połączonego przez Davide Inglima

To było bardzo przydatne dla mnie na MacOS.

  • Zamknij Eclipse, jeśli jest otwarte.
  • Otwórz Termnal (konsola bash) i wykonaj następujące czynności:

    $ pwd /Users/You/YourEclipseInstalationDirectory  
    $ cd Eclipse.app/Contents/MacOS/  
    $ echo "-Duser.name=Your Name" >> eclipse.ini  
    $ cat eclipse.ini
  • Zamknij Terminal i ponownie uruchom / otwórz Eclipse.

Łukasz Siwiński
źródło
1

To jest plik, którego wszyscy szukamy (w obszarze roboczym Eclipse):

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

Znajdziesz tag @author z nazwą, którą chcesz zmienić. Uruchom ponownie Eclipse i będzie działać.

W przypadku akcentów musisz użyć formatu Unicode (np. „\ U00E1” dla á).

Możesz także zmodyfikować plik „ini”, jak sugerują wcześniejsze odpowiedzi, lub ustawić nazwę użytkownika var dla rozwiązania globalnego. Lub zastąp tag @author w menu Preferencje, aby uzyskać rozwiązanie lokalne. Oba są poprawnymi rozwiązaniami tego problemu.

Ale jeśli szukasz nazwiska tego autora, które niepokoi większość z nas, znajduje się w tym pliku.

FranMowinckel
źródło
Ta opcja faktycznie modyfikuje ustawienie pokazane w preferencjach zaćmienia (ręcznie usuwa znacznik {użytkownik}).
Alfabravo
Lokalizacja pliku jest nieaktualna dla Eclipse Luna.
Martin Carney,
Jest $WORKSPACE/.metadata/.plugins/org.eclipse.core.runtime/.settings/… na Marsie, a także $WORKSPACE/$PROJECT/.settings/… dla każdego projektu. Jak wspomniano, są to preferencje dotyczące obszaru roboczego lub projektu, które mogą być wygodniej edytowane ręcznie (i wyraźnie wykluczone przez PO).
Dirk
0

edytuj plik /etc/eclipse.ini, aby zawierał wpis jako;

-Duser.name=myname

Zrestartuj „zaćmienie”, a teraz po utworzeniu dowolnego nowego pliku za pomocą kreatora (c / c ++ / java) użyje „myname” zamiast $ {użytkownik}.

parasrish
źródło
-1

Okno -> Preferencje -> Java -> Styl kodu -> Szablony kodu -> Komentarze -> Typy Zmień nazwę przed $ {użytkownik} na swoje imię.

Przed

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

Po

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

wprowadź opis zdjęcia tutaj

Waqas Ahmed
źródło
-4

tylko inna opcja. goto PREFERENCJE >> JAVA >> EDYTOR >> SZABLONY , wybierz @author i zmień zmienną $ {użytkownik}.

OJVM
źródło