Как изменить значение переменной $ {user}, используемой в шаблонах Eclipse

261

Вместо того, чтобы жестко задавать шаблон @author по умолчанию, я бы хотел, чтобы Eclipse использовал настоящее имя пользователя, взятое из информации об учетной записи (в Linux - но решение Windows также приветствуется). Ввод его где-нибудь в конфигурацию Eclipse также будет приемлемым, увы, я не могу найти правильное место.

Rajish
источник
1
Если вам интересно, версию переменной по умолчанию можно получить, вызвав: System.getProperty ("user.name"), и то, откуда Java берет ее, зависит от системы.
Maciej Biłas
В этой статье показан порядок, в котором Eclipse использует для определения значения переменной, что я нашел полезным. martijndashorst.com/blog/2006/04/21/…
Стивен Май
Ссылка StevenMai мертва ... Вот заархивированная версия: web.archive.org/web/20180927010751/http://…
Sometowngeek

Ответы:

286

Кажется, что вам лучше всего переопределить user.nameпеременную java либо в командной строке, либо с помощью eclipse.iniфайла в корневом каталоге установки eclipse.

Это, кажется, работает нормально для меня:

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

Обновить:

http://morlhon.net/blog/2005/09/07/eclipse-username/ является мертвой ссылкой ...

Вот новый: https://web.archive.org/web/20111225025454/http://morlhon.net:80/blog/2005/09/07/eclipse-username/

Давиде Инглима
источник
16
Риск состоит в том, что это сломает любой плагин, который должен знать идентификатор пользователя (который является документированным значением свойства user.name). Было бы хорошо, если бы был лучший способ настроить значение, которое Eclipse будет использовать для этой переменной.
диастрофизм
30
Для меня "вызванная проблема, я должен был сделать: -Duser.name=Ron Kitayчтобы он вел себя правильно
RonK
27
Еще более ЛУЧШЕЕ решение было бы для Eclipse иметь другую переменную, такую ​​как $ {programmer}, которую можно было бы определить и затем использовать в шаблонах (или даже позволить людям создавать свои собственные переменные!). Но это затмение, вздох.
Скотт Биггс
3
-Duser.nameДолжны прийти после того, как на -vmargsфлаге (протестировано с Eclipse , Марс).
Ян Чимиак
2
Мертвая ссылка, вот архив: web.archive.org/web/20111225025454/http://morlhon.net:80/blog/…
nloveladyallen
96

Откройте Eclipse, перейдите в «Окно» -> «Настройки» -> Java -> Стиль кода -> Шаблоны кода -> Комментарии -> Типы, а затем нажмите кнопку «Редактировать». Там вы можете изменить свое имя в сгенерированном комментарии с @Author $ {user} на @Author Rajish.

singletony
источник
41
Это не ответ на вопрос
Раджиш
15
@Rajish: вы абсолютно правы, но это может быть единственным разумным решением. После оценки вариантов, это то, что я сделал.
Скотт Биггс
13
На мой взгляд, это лучший ответ - вместо того, чтобы возиться с командной строкой и eclipse.ini, которые зависят от платформы и, возможно, слишком громоздки для выполняемой ими задачи, просто часто хочется выполнить настройку для каждого проекта - и делать это в Свойства проекта, такие как предложенные выше, в настоящее время могут быть единственным способом сделать это.
атп
2
Я думаю, что это не правильный ответ, потому что есть много языков и редакторов, использующих Eclipse, не только Java. Так что это решит проблему только для тех, кто использует Eclipse для редактирования Java, а не для всех других языков.
Лукас Габриэль Санчес
4
Это решение также не подходит, если вы используете общие определения шаблонов с другими пользователями.
Кристофер Барбер
36
Windows > Preferences > Java > Code Style > Code Templates > Comments

введите описание изображения здесь

Или Откройте eclipse.iniфайл и добавьте следующее.

-Duser.name=Sumit Singh // Your Name

введите описание изображения здесь

Сумит Сингх
источник
18

EGit Solution

Можно ожидать, что создание или изменение шаблонных переменных на основе проекта, рабочего пространства или среды - это стандартная функция Eclipse. К сожалению, это не так. Более того, учитывая, что плагины Eclipse могут определять новые переменные и шаблоны, должны быть плагины, предоставляющие решение. Если они есть, их должно быть трудно найти. ммм-TemplateVariable , доступный на Eclipse Marketplace, - это шаг в правильном направлении для пользователей Maven, позволяющий включать в шаблоны версию, artifactId и т. д.

К счастью, EGit , который является инструментом Eclipse для Git, предоставляет очень гибкие средства для включения множества различных переменных в шаблоны кода. Единственное требование - ваш проект использует Git. Если вы не используете Git, но серьезно относитесь к разработке программного обеспечения, сейчас самое время научиться ( книга Pro Git ). Если вы вынуждены использовать устаревшую систему контроля версий, попробуйте передумать.

Благодаря усилиям harmsk , EGit 4.0 и выше включает возможность использовать значения ключей конфигурации Git в шаблонах. Это позволяет устанавливать значения шаблона на основе настроек репозитория (проект), пользовательских настроек (учетная запись) и / или глобальных настроек (рабочая станция).

В следующем примере показано, как настроить Eclipse и Git для многопользовательской рабочей станции разработки и использовать вместо этого настраиваемый ключ конфигурации Git ${user}для обеспечения большей гибкости. Хотя пример основан на установке Eclipse Mars и Git для Windows в Windows 10, этот пример применим к Linux и OSX, использующим Eclipse и Git с использованием соответствующих инструментов командной строки.

Чтобы избежать возможной путаницы между user.nameключом конфигурации Git и user.nameсистемным свойством Java, user.authorдля предоставления имени автора и / или учетных данных будет использоваться пользовательский ключ конфигурации Git - .

Настройка шаблонов

Формат переменной шаблона Git выглядит следующим образом

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

где <name>любое произвольное имя переменной и<key> ключ конфигурации Git, значение которого следует использовать. Учитывая это, изменив шаблон Комментарии → Типы на

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

теперь попытается определить имя автора из user.authorконфигурационного ключа Git . Без дальнейшей настройки любые вновь созданные комментарии не будут включать имя после @author, так как ни один еще не был определен.

Конфигурирование Git

Из командной строки

Конфигурация системы Git - Этот шаг конфигурации вносит изменения в общесистемную конфигурацию Git, применимые ко всем учетным записям на рабочей станции, если они не отменены настройками пользователя или репозитория. Поскольку общесистемные конфигурации являются частью основного приложения Git (например, Git для Windows), для внесения изменений потребуются права администратора. Запустите Git Bash, cmd или PowerShell от имени администратора. Следующая команда установит общесистемного автора.

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

Цель этого «автора» - служить напоминанием о том, что он должен быть установлен в другом месте. Это особенно полезно, когда на рабочей станции используются новые учетные записи пользователей.

Чтобы проверить этот параметр, создайте пустой проект Java, использующий Git, или откройте существующий проект на основе Git. Создайте класс и используйте Source → Generate Element Comment из контекстного меню ALT-SHIFT-J или запустите комментарий JavaDoc. Полученный @authorтег должен сопровождаться предупреждением.

Оставшиеся изменения конфигурации могут быть выполнены без прав администратора.

Глобальная (пользовательская) конфигурация Git. Глобальные или пользовательские конфигурации - это конфигурации, связанные с конкретным пользователем, которые переопределяют общесистемные конфигурации. Эти параметры применяются ко всем проектам на основе Git, если они не переопределяются настройками репозитория. Если имя автора отличается из-за различных типов проектов, таких как работа, материалы с открытым исходным кодом или личные данные, установите наиболее часто используемые здесь.

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

Настроив глобальное значение, вернитесь к ранее использовавшемуся тестовому проекту и примените комментарий класса. Теперь @authorтег должен показывать глобальные настройки.

Конфигурация Git Repository (Local) - Наконец, репозиторий или локальная конфигурация могут быть использованы для настройки автора для конкретного проекта. В отличие от предыдущих конфигураций, конфигурация хранилища должна быть выполнена из хранилища. С помощью Git Bash, PowerShell и т. Д. Перейдите в хранилище тестового проекта.

git config --local user.author “smithy”

Учитывая это, новые комментарии в тестовом проекте будут использовать локально определенное имя автора. Другие основанные на Git проекты будут по-прежнему использовать глобальное имя автора.

Из Затмения

Изменения конфигурации, указанные выше, также могут быть установлены в Eclipse через его Предпочтения: Team → Git-Configuration . Eclipse должен запускаться от имени администратора для изменения общесистемных конфигураций Git.

В сумме

Хотя в этом примере конкретно рассматривается наиболее распространенная проблема - проблема изменения ${user}, этот подход можно использовать для большего. Однако следует проявлять осторожность, чтобы не использовать определенные Git ключи конфигурации, если это специально не предназначено.

Frelling
источник
Это хорошо, но почему бы просто не использовать, ${author:git_config(user.name)}как это уже стандартно?
RobertDeRose
@RobD - Как уже упоминалось в посте (5-й абзац сверху) - чтобы избежать путаницы. Вы можете использовать все, что хотите. Хотя в производственной среде лучше отделять элементы конфигурации проекта от элементов конфигурации системы.
Frelling
16

Вместо того, чтобы изменяться ${user}в затмении, желательно ввести

-Duser.name=Whateverpleaseyou

в eclipse.iniкотором присутствует в вашей папке затмения.

Ануй Балан
источник
3
-1 Нет, eclipse.ini, даже сохраненный как UTF-8, неправильно обрабатывает французский акцент, такой как «...»
Aubin
26
Какой смысл размещать через четыре года то же решение, что и принятое?
PhiLho
2
@ Обин, на самом деле, сейчас я запускаю затмение, которое поддерживает такие акценты, как ... без проблем. Так что это правильный и полезный ответ.
Лукас Габриэль Санчес
1
@PhiLho Этот ответ компактен и сжат, всего 3 предложения. Также ссылка в выбранном ответе не работает.
Джонниб
3

dovescrywolf дал отзыв в качестве комментария к статье, на которую ссылается Davide Inglima

Это было очень полезно для меня на MacOS.

  • Закройте Eclipse, если он открыт.
  • Откройте Termnal (консоль bash) и выполните следующие действия:

    $ pwd /Users/You/YourEclipseInstalationDirectory  
    $ cd Eclipse.app/Contents/MacOS/  
    $ echo "-Duser.name=Your Name" >> eclipse.ini  
    $ cat eclipse.ini
  • Закройте терминал и снова запустите / откройте Eclipse.

Лукаш Сивиньски
источник
1

Это файл, который мы все ищем (внутри вашего рабочего пространства Eclipse):

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

Вы найдете тег @author с именем, которое хотите изменить. Перезапустите Eclipse, и он будет работать.

Для акцентов вы должны использовать формат Unicode (например, '\ u00E1' для á).

Вы также можете изменить файл 'ini', как предлагают предыдущие ответы, или задать имя пользователя var для глобального решения. Или переопределите тег @author в меню настроек для локального решения. Оба являются действительными решениями этой проблемы.

Но если вы ищете «это» имя автора, которое беспокоит большинство из нас, есть в этом файле.

FranMowinckel
источник
Эта опция фактически изменяет настройку, показанную в настройках eclipse (удаляет тег {user}), вручную.
Альфабраво
Расположение файла для Eclipse Luna устарело.
Мартин Карни
Это $WORKSPACE/.metadata/.plugins/org.eclipse.core.runtime/.settings/... на Марсе, и есть также $WORKSPACE/$PROJECT/.settings/... для каждого проекта. Как уже упоминалось, это настройки рабочего пространства или проекта, которые могут быть более удобно отредактированы вручную (и явно исключены OP).
Дирк
0

отредактируйте файл /etc/eclipse.iniтак, чтобы он содержал запись как;

-Duser.name=myname

Перезапустите «eclipse» и теперь, при создании любого нового файла, с помощью мастера (c / c ++ / java) он будет использовать «myname» вместо $ {user}.

parasrish
источник
-1

Окно -> Настройки -> Java -> Стиль кода -> Шаблоны кода -> Комментарии -> Типы. Поместите тег перед именем пользователя {$}.

Перед

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

После

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

введите описание изображения здесь

Вакас Ахмед
источник
-4

просто другой вариант. Перейти к ПРЕДПОЧТЕНИЯМ >> JAVA >> РЕДАКТОР >> ШАБЛОНЫ , выберите @author и измените переменную $ {user}.

OJVM
источник