如何更改Eclipse模板中使用的$ {user}变量的值


260

我不希望对默认的@author模板进行硬编码,我希望Eclipse使用从帐户信息中获取的用户真实姓名(在Linux中-但也欢迎Windows解决方案)。将它输入到Eclipse配置中也是可以接受的,因为我找不到正确的位置。


1
如果您好奇,可以通过以下方式获取变量的默认版本:System.getProperty(“ user.name”),Java从何处获取它取决于系统。
MaciejBiłas09年

本文显示了eclipse用于确定变量值的顺序,我认为这很有帮助。martijndashorst.com/blog/2006/04/21/...
史蒂芬迈

StevenMai的链接已死...这是一个存档版本:web.archive.org/web/20180927010751/http
//

Answers:


285

似乎最好的选择是user.name在命令行中重新定义java 变量,或者使用eclipse.inieclipse install根目录中的文件。

这似乎对我来说很好:

-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
风险是,这将破坏需要知道用户ID(这是user.name属性的已记录值)的所有插件。如果有更好的方法来调整Eclipse将用于该变量的值,那就太好了。
Diastrophism

30
对我来说,"造成了问题,我必须做:-Duser.name=Ron Kitay让它正常运行
RonK 2011年

27
更好的解决方案是使Eclipse具有另一个可以定义的变量,例如$ {programmer},然后在模板中使用(甚至允许人们创建自己的变量!)。但这是Eclipse,叹息。
Scott Biggs

3
-Duser.name必须来-vmargs标志(与Eclipse火星测试)。
Jan Chimiak

2
无效

96

打开Eclipse,导航至窗口->首选项-> Java->代码样式->代码模板->注释->类型,然后按“编辑”按钮。您可以在其中将生成的注释中的名称从@Author $ {user}更改为@Author Rajish。


41
那不是问题的答案
Rajish 2011年

15
@Rajish:您是绝对正确的,但这可能是唯一合理的解决方法。在评估了选项之后,这就是我所做的。
Scott Biggs

13
在我看来,这是最好的答案-而不是搞乱命令行和eclipse.ini,它们依赖于平台,并且对于完成的任务而言过于繁琐,一个人通常只是希望针对每个项目进行设置-在这种情况下上面建议的项目属性目前可能是唯一的方法。
2012年

2
我认为这不是正确的答案,因为有很多语言和编辑器都在使用Eclipse,而不仅仅是Java。这样就只能解决使用Eclipse编辑Java而不是其他所有语言的问题。
卢卡斯·加布里埃尔·桑切斯

4
如果要与其他用户使用共享模板定义,则此解决方案也不适用。
Christopher Barber

36
Windows > Preferences > Java > Code Style > Code Templates > Comments

在此处输入图片说明

或打开eclipse.ini文件并添加以下内容。

-Duser.name=Sumit Singh // Your Name

在此处输入图片说明


18

EGit解决方案

可以期望在基于项目,工作空间或环境的基础上创建或更改模板变量是一项标准的Eclipse功能。可悲的是,事实并非如此。更重要的是,鉴于Eclipse插件可以定义新的变量和模板,因此应该有提供解决方案的插件。如果是的话,一定很难找到它们。mmm-TemplateVariable(可在Eclipse Marketplace中使用)是Maven用户朝正确方向迈出的一步,可以在模板中包含版本,artifactId等。

幸运的是,EGit是Git的Eclipse工具,它提供了非常灵活的方式来在代码模板中包含许多不同的变量。唯一的要求是您的项目使用Git。如果您不使用Git,但对软件开发很认真,那么现在是时候学习(Pro Git书)。如果您被迫使用旧版版本控制系统,请尝试改变主意。

由于harmsk的努力,EGit 4.0及更高版本包含了在模板中使用Git配置键值的能力。这允许基于存储库设置(项目),用户设置(帐户)和/或全局设置(工作站)来设置模板值。

以下示例显示了如何为多用户开发工作站设置Eclipse和Git并使用自定义Git配置密钥代替 ${user}提供更大的灵活性。尽管该示例基于Windows的Eclipse Mars和Git Windows 10安装,但该示例适用于使用各自的命令行工具运行Eclipse和Git的Linux和OSX。

为了避免Git的user.name配置密钥和Java的user.name系统属性之间的混淆,将使用自定义的Git配置密钥– user.author提供作者的姓名和/或凭证。

配置模板

Git模板变量的格式如下

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

其中,<name>是任意变量名称,并且<key>是应使用其值的Git配置密钥。鉴于此,将Comment→Types模板更改为

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

现在将尝试通过Git的user.author配置密钥来解析作者的姓名。如果没有任何进一步的配置,则任何新创建的注释将在之后不包含名称@author,因为尚未定义。

配置Git

从命令行

Git系统配置 -此配置步骤更改了Git的系统范围配置,该配置适用于工作站上的所有帐户,除非被用户或存储库设置覆盖。由于系统范围的配置是底层Git应用程序(例如,Windows的Git)的一部分,因此更改将需要管理员权限。以管理员身份运行Git Bash,cmd或PowerShell。以下命令将设置系统范围的作者。

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

该“作者”的目的是提醒您应将其设置在其他位置。当工作站上使用新的用户帐户时,这特别有用。

要验证此设置,请创建一个使用Git的空Java项目或打开一个现有的基于Git的项目。创建一个类,然后从上下文菜单ALT-SHIFT-J中使用Source→Generate Element Comment,或启动JavaDoc注释。结果标签后应带有警告。@author

其余配置更改可以在没有管理员权限的情况下执行。

Git全局(用户)配置 -全局或用户配置是与特定用户相关联的配置,它将覆盖系统范围的配置。这些设置适用于所有基于Git的项目,除非被存储库设置覆盖。如果由于各种项目类型(例如工作,开源贡献或个人项目)作者姓名不同,请在此处设置最常用的名称。

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

配置了全局值后,返回早期使用的测试项目并应用类注释。该@author标签现在应显示全局设置。

Git仓库(本地)配置 -最后,可以使用仓库或本地配置为特定项目配置作者。与以前的配置不同,必须从存储库内部完成存储库配置。使用Git Bash,PowerShell等导航到测试项目的存储库。

git config --local user.author “smithy”

鉴于此,测试项目中的新注释将使用本地定义的作者名称。其他基于Git的项目仍将使用全局作者名。

从Eclipse内部

上面的配置更改也可以在Eclipse中通过其偏好设置:Team→Git-Configuration进行设置。Eclipse必须以管理员身份运行才能更改系统范围的Git配置。

总共

尽管此示例专门解决了最常见的问题(change)${user},但是该方法可以使用更多。但是,应谨慎使用,除非明确指定,否则不要使用Git定义的配置密钥。


很好,但是为什么不${author:git_config(user.name)}按原样使用呢?
RobertDeRose19年

@RobD-如文章所述(自上而下第5段)-避免混淆。您可以随意使用任何内容。尽管在生产环境中,最好将项目配置项与系统配置项分开。
弗莱林

16

而不是改变${user}在Eclipse中,最好是引进

-Duser.name=Whateverpleaseyou

eclipse.ini您的eclipse文件夹中。


3
-1不,eclipse.ini甚至保存为UTF-8不能正确处理àôéù之类的法国口音...
Aubin

26
发表四年后,与接受的解决方案相同的解决方案有什么意义?
PhiLho

2
@Aubin实际上,我现在正在运行一个日食,它支持áóë..等重音,没有问题。因此,这是正确且有用的答案。
卢卡斯·加布里埃尔·桑切斯

1
@PhiLho这个答案简洁明了,只有3个句子。同样,所选答案中的链接也断开了。
johnnieb

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标记以获取本地解决方案。这些都是解决此问题的有效方法。

但是,如果您要查找困扰我们大多数人的“那个”作者姓名,则在该文件中。


该选项实际上是手动修改了Eclipse偏好设置中显示的设置(删除了标签{user})。
Alfabravo 2014年

Eclipse Luna的文件位置已过期。
马丁·卡尼

这是$WORKSPACE/.metadata/.plugins/org.eclipse.core.runtime/.settings/...火星上也有$WORKSPACE/$PROJECT/.settings/......每个项目。如前所述,这些是工作空间或项目首选项,可以更方便地手动编辑(并且明确地由OP排除)。
德克2015年

0

编辑文件/etc/eclipse.ini,以便将条目包含为;

-Duser.name=myname

重新启动“ eclipse”,现在,在使用向导(c / c ++ / java)创建任何新文件时,它将使用“ myname”代替$ {user}。


-1

窗口->首选项-> Java->代码样式->代码模板->注释->类型将前面的$ {user}更改为您的名字。

之前

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

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

在此处输入图片说明


-4

只是其他选择。转到首选项>> JAVA >>编辑器>>模板,选择@author并更改变量$ {user}。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.