Soluzione EGit
Ci si aspetterebbe che la creazione o la modifica di variabili modello su base di progetto, area di lavoro o ambiente sia una funzione Eclipse standard. Purtroppo no. Inoltre, dato che i plug-in Eclipse possono definire nuove variabili e modelli, dovrebbero esserci plug-in che forniscono una soluzione. Se lo sono, devono essere difficili da trovare. mmm-TemplateVariable , che è disponibile nel Marketplace di Eclipse, è un passo nella giusta direzione per gli utenti Maven, offrendo la possibilità di includere la versione, l'artefattoId, ecc. nei modelli.
Fortunatamente, EGit , che è uno strumento Eclipse per Git, fornisce mezzi molto flessibili per includere molte variabili diverse nei modelli di codice. L'unico requisito è che il tuo progetto usi Git. Se non usi Git, ma sei seriamente interessato allo sviluppo del software, ora è il momento di imparare ( libro Pro Git ). Se sei costretto a utilizzare un sistema di controllo della versione legacy, prova a cambiare idea.
Grazie all'impegno di harmsk , EGit 4.0 e versioni successive includono la possibilità di utilizzare i valori delle chiavi di configurazione di Git nei modelli. Ciò consente di impostare i valori del modello in base alle impostazioni del repository (progetto), alle impostazioni dell'utente (account) e / o alle impostazioni globali (workstation).
L'esempio seguente mostra come impostare Eclipse e Git per una workstation di sviluppo multiutente e utilizzare una chiave di configurazione Git personalizzata al posto di ${user}fornire maggiore flessibilità. Sebbene l'esempio sia basato su un'installazione Windows 10 di Eclipse Mars e Git per Windows, l'esempio è applicabile a Linux e OSX che eseguono Eclipse e Git utilizzando i rispettivi strumenti da riga di comando.
Per evitare possibili confusioni tra la user.namechiave di configurazione di Git e la user.nameproprietà di sistema di Java , user.authorverrà utilizzata una chiave di configurazione Git personalizzata - per fornire il nome e / o le credenziali di un autore.
Configurazione dei modelli
Il formato di una variabile del modello Git è il seguente
${<name>:git_config(<key>)}
dove <name>c'è un nome di variabile arbitrario ed <key>è la chiave di configurazione di Git il cui valore deve essere usato. Detto questo, cambiando il modello Commenti → Tipi in
/**
* @author ${author:git_config(user.author)}
*
* ${tags}
*/
tenterà ora di risolvere il nome dell'autore dalla user.authorchiave di configurazione di Git . Senza ulteriori configurazioni, eventuali commenti appena creati non includeranno un nome dopo @author, poiché nessuno è stato ancora definito.
Configurare Git
Dalla riga di comando
Configurazione del sistema Git - Questo passaggio di configurazione apporta modifiche alla configurazione dell'intero sistema Git applicabile a tutti gli account sulla workstation a meno che non venga sovrascritto dalle impostazioni dell'utente o del repository. Poiché le configurazioni a livello di sistema fanno parte dell'applicazione Git sottostante (ad esempio Git per Windows), le modifiche richiederanno i privilegi di amministratore. Esegui Git Bash, cmd o PowerShell come amministratore. Il comando seguente imposterà l'autore a livello di sistema.
git config --system user.author “SET ME IN GLOBAL(USER) or REPOSITORY(LOCAL) SETTINGS”
Lo scopo di questo "autore" è quello di ricordare che dovrebbe essere impostato altrove. Ciò è particolarmente utile quando si utilizzano nuovi account utente sulla workstation.
Per verificare questa impostazione, creare un progetto Java vuoto che utilizza Git o aprire un progetto basato su Git esistente. Crea una classe e usa Sorgente → Genera commento elemento dal menu contestuale, ALT-SHIFT-J , o avvia un commento JavaDoc. Il @authortag risultante dovrebbe essere seguito dall'avvertimento.
Le restanti modifiche alla configurazione possono essere eseguite senza i privilegi di amministratore.
Configurazione globale (utente) di Git - Le configurazioni globali o utente sono quelle associate a un utente specifico e sostituiranno le configurazioni a livello di sistema. Queste impostazioni si applicano a tutti i progetti basati su Git a meno che non vengano sovrascritti dalle impostazioni del repository. Se il nome dell'autore è diverso a causa di vari tipi di progetto, ad esempio per lavoro, contributi open source o personali, impostare qui i più utilizzati.
git config --global user.author “Mr. John Smith”
Dopo aver configurato il valore globale, tornare al progetto di test utilizzato in anticipo e applicare un commento di classe. Il @authortag dovrebbe ora mostrare l'impostazione globale.
Configurazione del repository Git (locale) - Infine, è possibile utilizzare un repository o una configurazione locale per configurare un autore per un progetto specifico. A differenza delle configurazioni precedenti, una configurazione del repository deve essere eseguita all'interno del repository. Utilizzando Git Bash, PowerShell, ecc., Accedere al repository del progetto di test.
git config --local user.author “smithy”
Detto questo, i nuovi commenti nel progetto di test useranno il nome dell'autore definito localmente. Altri progetti basati su Git utilizzeranno comunque il nome dell'autore globale.
Dall'interno di Eclipse
Le modifiche alla configurazione sopra possono anche essere impostate da Eclipse tramite le sue Preferenze: Team → Configurazione Git . Eclipse deve essere eseguito come amministratore per modificare le configurazioni Git a livello di sistema.
In somma
Sebbene questo esempio abbia affrontato in modo specifico il problema più comune, quello del cambiamento ${user}, questo approccio può essere utilizzato per altro. Tuttavia, è necessario prestare attenzione a non utilizzare le chiavi di configurazione definite da Git, a meno che non sia specificamente previsto.