Como alterar o valor da variável $ {user} usada nos modelos Eclipse

261

Em vez de codificar o modelo padrão @author, eu gostaria que o Eclipse usasse o nome real do usuário retirado das informações da conta (no Linux - mas a solução Windows também é bem-vinda). Entrá-lo em algum lugar na configuração do Eclipse também seria aceitável, infelizmente, não consigo encontrar o lugar certo.

Rajish
fonte
1
Se você estiver curioso, a versão padrão da variável pode ser obtida chamando: System.getProperty ("user.name") e a origem do Java depende do sistema.
Maciej Biłas
Este artigo mostra a ordem em que o eclipse usa para determinar o valor da variável que eu achei útil. martijndashorst.com/blog/2006/04/21/…
Steven Mai
Ligação de StevenMai está morto ... Aqui está uma versão arquivada: web.archive.org/web/20180927010751/http://...
Sometowngeek

Respostas:

286

Parece que sua melhor aposta é redefinir a user.namevariável java na linha de comando ou usando o eclipse.iniarquivo no diretório raiz de instalação do eclipse.

Isso parece funcionar bem para mim:

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

Atualizar:

http://morlhon.net/blog/2005/09/07/eclipse-username/ é um link morto ...

Aqui está um novo: https://web.archive.org/web/20111225025454/http://morlhon.net:80/blog/2005/09/07/eclipse-username/

Davide Inglima
fonte
16
O risco é que isso interrompa qualquer plug-in que precise conhecer o ID do usuário (que é o valor documentado da propriedade user.name). Seria bom se houvesse uma maneira melhor de ajustar o valor que o Eclipse usará para essa variável.
Diastrofismo
30
Para mim, a "causou um problema, eu tinha que fazer: -Duser.name=Ron Kitaypara tê-lo comportar-se adequadamente
ronk
27
Uma solução MELHOR seria que o Eclipse tivesse outra variável como $ {programmer} que alguém pudesse definir e depois usar nos modelos (ou até permitir que as pessoas criassem suas próprias variáveis!). Mas isso é Eclipse, suspiro.
Scott Biggs
3
Ele -Duser.namedeve vir após a -vmargsbandeira (testado com Eclipse Mars).
Jan Chimiak 12/03
2
Link morto, aqui está um arquivo: web.archive.org/web/20111225025454/http://morlhon.net:80/blog/…
nloveladyallen
96

Abra o Eclipse, navegue até Janela -> Preferências -> Java -> Estilo do código -> Modelos de código -> Comentários -> Tipos e pressione o botão 'Editar'. Lá, você pode alterar seu nome no comentário gerado de @Author $ {user} para @Author Rajish.

singletonia
fonte
41
Essa não é a resposta para a pergunta
Rajish
15
@ Rajish: você está absolutamente certo, mas pode ser a única solução razoável. Depois de avaliar as opções, foi o que fiz.
Scott Biggs
13
Esta é a melhor resposta na minha opinião - em vez de mexer com a linha de comando e o eclipse.ini, que são dependentes da plataforma e, sem dúvida, muito complicados para a tarefa que realizam, simplesmente desejamos fazer uma configuração por projeto - e fazê-lo em As propriedades do projeto, como sugerido acima, podem atualmente ser a única maneira de fazê-lo.
amn
2
Eu acho que não é a resposta certa, porque há muitas linguagens e editores usando o Eclipse, não apenas Java. Portanto, isso resolve o problema apenas para aqueles que usam o Eclipse para editar Java, nem todas as outras linguagens.
Lucas Gabriel Sánchez
4
Essa solução também não é apropriada se você estiver usando definições de modelo compartilhado com outros usuários.
Christopher Barber
36
Windows > Preferences > Java > Code Style > Code Templates > Comments

insira a descrição da imagem aqui

Ou Abra o eclipse.iniarquivo e adicione o seguinte.

-Duser.name=Sumit Singh // Your Name

insira a descrição da imagem aqui

Sumit Singh
fonte
18

Solução EGit

Seria de esperar que a criação ou alteração de variáveis ​​de modelo em uma base de projeto, espaço de trabalho ou ambiente seja um recurso padrão do Eclipse. Infelizmente, não é. Mais ainda, considerando que os plugins do Eclipse podem definir novas variáveis ​​e modelos, deve haver plugins disponíveis para fornecer uma solução. Se forem, devem ser difíceis de encontrar. O mmm-TemplateVariable , disponível no Eclipse Marketplace, é uma etapa na direção certa para os usuários do Maven, permitindo incluir versão, artifactId etc. nos modelos.

Felizmente, o EGit , que é uma ferramenta Eclipse para o Git, fornece meios muito flexíveis para incluir muitas variáveis ​​diferentes nos modelos de código. O único requisito é que seu projeto use o Git. Se você não usa o Git, mas fala sério sobre desenvolvimento de software, agora é a hora de aprender ( livro do Pro Git ). Se você for forçado a usar um sistema de controle de versão herdado, tente mudar algumas ideias.

Graças aos esforços do harmsk , o EGit 4.0 e superior incluem a capacidade de usar os valores das chaves de configuração do Git nos modelos. Isso permite definir valores de modelo com base nas configurações do repositório (projeto), configurações do usuário (conta) e / ou configurações globais (estação de trabalho).

O exemplo a seguir mostra como configurar o Eclipse e o Git para uma estação de trabalho de desenvolvimento multiusuário e usar uma chave de configuração personalizada do Git em vez de ${user}fornecer mais flexibilidade. Embora o exemplo seja baseado em uma instalação do Windows 10 do Eclipse Mars e Git para Windows, o exemplo é aplicável ao Linux e OSX que executam o Eclipse e o Git usando suas respectivas ferramentas de linha de comando.

Para evitar possíveis confusões entre a user.namechave de configuração do Git e a user.namepropriedade do sistema Java , uma chave de configuração personalizada do Git - user.author- será usada para fornecer o nome e / ou credenciais de um autor.

Configurando modelos

O formato de uma variável de modelo Git é o seguinte

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

onde <name>é qualquer nome de variável arbitrário e <key>é a chave de configuração do Git cujo valor deve ser usado. Dado isso, alterar o modelo Comentários → Tipos para

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

agora tentará resolver o nome do autor a partir da user.authorchave de configuração do Git . Sem nenhuma configuração adicional, quaisquer comentários recém-criados não incluirão um nome depois @author, pois nenhum foi definido ainda.

Configurando o Git

Na linha de comando

Configuração do sistema Git - Esta etapa de configuração faz alterações na configuração do sistema do Git aplicáveis ​​a todas as contas na estação de trabalho, a menos que sejam substituídas pelas configurações do usuário ou do repositório. Como as configurações em todo o sistema fazem parte do aplicativo Git subjacente (por exemplo, Git for Windows), as alterações exigirão privilégios de administrador. Execute o Git Bash, cmd ou PowerShell como administrador. O comando a seguir definirá o autor em todo o sistema.

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

O objetivo deste "autor" é servir como um lembrete de que deve ser definido em outro lugar. Isso é particularmente útil quando novas contas de usuário estão sendo usadas na estação de trabalho.

Para verificar essa configuração, crie um projeto Java vazio que use Git ou abra um projeto baseado em Git existente. Crie uma classe e use Origem → Gerar comentário do elemento no menu de contexto, ALT-SHIFT-J , ou inicie um comentário JavaDoc. A @authortag resultante deve ser seguida pelo aviso.

As demais alterações na configuração podem ser executadas sem privilégios de administrador.

Configuração global (usuário) do Git - configurações globais ou de usuário são aquelas associadas a um usuário específico e substituem as configurações de todo o sistema. Essas configurações se aplicam a todos os projetos baseados em Git, a menos que sejam substituídas pelas configurações do repositório. Se o nome do autor for diferente devido a vários tipos de projeto, como trabalho, contribuições de código aberto ou pessoal, defina o mais usado aqui.

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

Depois de configurar o valor global, retorne ao projeto de teste usado anteriormente e aplique um comentário da classe. A @authortag agora deve mostrar a configuração global.

Configuração do repositório Git (local) - Por fim, um repositório ou configuração local pode ser usado para configurar um autor para um projeto específico. Diferente das configurações anteriores, uma configuração de repositório deve ser feita de dentro do repositório. Usando Git Bash, PowerShell, etc., navegue até o repositório do projeto de teste.

git config --local user.author “smithy”

Diante disso, novos comentários no projeto de teste usarão o nome do autor definido localmente. Outros projetos baseados em Git, ainda usarão o nome do autor global.

De Dentro do Eclipse

As mudanças na configuração acima também podem ser definidas no Eclipse através de suas Preferências: Equipe → Git-Configuration . O Eclipse deve ser executado como administrador para alterar as configurações do Git em todo o sistema.

Em suma

Embora este exemplo tenha lidado especificamente com o problema mais comum, o da mudança ${user}, essa abordagem pode ser usada para mais. No entanto, deve-se ter cuidado para não usar chaves de configuração definidas pelo Git, a menos que se destine especificamente.

Frelling
fonte
Isso é legal, mas por que não usar apenas ${author:git_config(user.name)}como já é padrão?
RobertDeRose
@RobD - Como mencionado no post (quinto parágrafo do topo) - para evitar confusão. Você é livre para usar o que quiser. Embora em um ambiente de produção, é melhor separar os itens de configuração do projeto dos itens de configuração do sistema.
Frelling
16

Em vez de mudar ${user}no eclipse, é aconselhável introduzir

-Duser.name=Whateverpleaseyou

em eclipse.inique está presente na sua pasta eclipse.

Anuj Balan
fonte
3
-1 Não, eclipse.ini mesmo gravados no formato UTF-8 não lidar com sotaque corretamente Francês como àôéù ...
Aubin
26
Qual o sentido de publicar, quatro anos depois, a mesma solução que a aceita?
PhiLho 14/02
2
@ Aubin, na verdade, agora estou executando um eclipse que suporta acentos como áóë etc. etc. sem problemas. Portanto, esta é uma resposta correta e útil.
Lucas Gabriel Sánchez
1
@ PhiLho Esta resposta é compacta e concisa, com apenas três frases. Além disso, o link na resposta selecionada está quebrado.
johnnieb
3

dovescrywolf deu dica como um comentário no artigo de Davide Inglima

Foi muito útil para mim no MacOS.

  • Feche o Eclipse se estiver aberto.
  • Abra o Termnal (console do bash) e faça o seguinte:

    $ pwd /Users/You/YourEclipseInstalationDirectory  
    $ cd Eclipse.app/Contents/MacOS/  
    $ echo "-Duser.name=Your Name" >> eclipse.ini  
    $ cat eclipse.ini
    
  • Feche o Terminal e inicie / abra o Eclipse novamente.

Łukasz Siwiński
fonte
1

Este é o arquivo que estamos procurando (dentro da área de trabalho do Eclipse):

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

Você encontrará uma tag @author com o nome que deseja alterar. Reinicie o Eclipse e ele funcionará.

Para acentos, você precisa usar o formato Unicode (por exemplo, '\ u00E1' para á).

Você também pode modificar o arquivo 'ini' conforme as respostas anteriores sugerem ou definir o nome de usuário var para uma solução global. Ou substitua a tag @author no menu Preferências de uma solução local. Essas são as duas soluções válidas para esse problema.

Mas se você estiver procurando pelo nome 'autor' que está incomodando a maioria de nós, está nesse arquivo.

FranMowinckel
fonte
Essa opção realmente modifica a configuração mostrada nas preferências do eclipse (remove a tag {user}) manualmente.
Alfabravo 10/01
O local do arquivo está desatualizado para o Eclipse Luna.
Martin Carney
É $WORKSPACE/.metadata/.plugins/org.eclipse.core.runtime/.settings/... em Marte, e também existem $WORKSPACE/$PROJECT/.settings/... para cada projeto. Como mencionado, essas são as preferências da área de trabalho ou do projeto, que podem ser editadas com mais facilidade manualmente (e explicitamente excluídas pelo OP).
Dirk
0

edite o arquivo /etc/eclipse.ini, de modo a conter a entrada como;

-Duser.name=myname

Reinicie o "eclipse" e agora, na criação de qualquer novo arquivo, com o assistente (c / c ++ / java), ele usará "myname" no lugar de $ {user}.

parasita
fonte
-1

Janela -> Preferências -> Java -> Estilo do código -> Modelos de código -> Comentários -> Tipos Altere o valor da frente de $ {user} para o seu nome.

Antes

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

Depois de

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

insira a descrição da imagem aqui

Waqas Ahmed
fonte
-4

apenas outra opção. ir para PREFERÊNCIAS >> JAVA >> EDITOR >> MODELOS , selecione @author e altere a variável $ {user}.

OJVM
fonte