git-commit-id-maven-plugin é um plugin bastante semelhante ao Build Number Maven Plugin, por exemplo, mas como o plugin Build Number na época em que comecei este plugin só suportava CVS e SVN, algo precisava ser feito. Tive que desenvolver rapidamente uma versão Git desse plugin. Para quem não conhece o plugin, ele basicamente ajuda nas seguintes tarefas e responde dúvidas relacionadas
Se você estiver mais interessado nos diferentes casos de uso, sinta-se à vontade para ler sobre eles com mais detalhes.
GitCommitIdMojo.java
como JavadocO plugin está disponível no Maven Central (veja aqui), então você não precisa configurar nenhum repositório adicional para usar este plugin.
Uma descrição detalhada do uso do plugin está disponível no documento Usando o plugin. Tudo o que você precisa fazer na configuração básica é incluir a definição do plugin em seu pom.xml
. Para usuários mais avançados também preparamos um guia para fornecer uma breve visão geral das configurações mais avançadas... continue lendo!
Versão mais recente (5.xx ou mais recente) está disponível via
< groupId >io.github.git-commit-id groupId >
< artifactId >git-commit-id-maven-plugin artifactId >
versões mais antigas (4.xx ou anteriores) estão disponíveis em:
< groupId >pl.project13.maven groupId >
< artifactId >git-commit-id-plugin artifactId >
A versão atual é 9.0.0 (lista de alterações).
Você pode verificar as versões disponíveis visitando search.maven.org, embora usar a mais recente seja obviamente a melhor escolha.
Aqui está uma visão geral da compatibilidade atual do plugin com Java
Versão do plug-in | Versão Java necessária |
---|---|
2.1.X | Java 1.6 |
2.2.X | Java 1.7 |
3.XX | Java 1.8 |
4.XX | Java 1.8 |
5.XX | Java 11 |
6.XX | Java 11 |
7.XX | Java 11 |
8.XX | Java 11 |
9.XX | Java 11 |
Embora este plugin tente ser compatível com todas as versões do Maven, existem algumas limitações conhecidas em versões específicas. Aqui está uma lista que tenta delinear o estado da arte atual:
Versão do plug-in | Versão mínima necessária do Maven |
---|---|
2.1.X | Maven 2.2.1 até v2.1.13; Maven 3.1.1 para qualquer versão 2.1.X posterior |
2.2.X | Maven 3.1.1 até v2.2.3; Maven 3.0 para qualquer versão 2.2.X posterior |
3.XX | Maven 3.0 |
4.XX | Maven 3.0 |
5.XX | Maven 3.1.0-alfa-1 |
6.XX | Maven 3.1.0-alfa-1 |
7.XX | Maven 3.2.5 |
8.XX | Maven 3.2.5 |
9.XX | Maven 3.6.3 |
Virando a mesa para o maven: Observe que, em teoria, o maven 4.X deve suportar todos os plug-ins do maven 3. O plugin foi enviado pela primeira vez com suporte ao maven 3 na versão v2.1.14 (exigindo a versão 3.1.1 do maven). Portanto, a v2.1.14 deve ser a primeira versão suportada. Somente a partir de 6.XX este plugin foi realmente testado com 4.0.0-alpha-5, mas algumas versões podem não funcionar já que o Maven 4 anunciou que os plugins requerem o Maven 3.2.5 ou posterior, o que seria apenas o caso para as versões 7.0 do plugin. 0 ou posterior.
Versão Maven | Versão do plug-in | Notas |
---|---|---|
Maven 3.X | qualquer | O plugin requer pelo menos um maven 3.1.0-alpha-1 |
Maven 4.X | da v2.1.14 |
As versões do Maven em fim de vida (EOL) não são mais suportadas pelo Maven, nem por este plugin. As informações a seguir são disponibilizadas para referência.
Versão Maven | Versão do plug-in | Notas |
---|---|---|
Maven 2.0.11 | até 2.2.6 | Maven 2 é EOL, git-commit-id-plugin:1.0 não funciona - requer maven versão 2.2.1 |
Maven 2.2.1 | até 2.2.6 | Maven 2 é EOL |
Maven 3.0.X | até 4.0.5 | git-commit-id-plugin:2.1.14, 2.1.15, 2.2.0, 2.2.1, 2.2.3 não funciona - requer maven versão 3.1.1 |
Maven 3.0.X | até 4.0.5 | Para git-commit-id-plugin 2.2.4 ou superior: funciona, mas falhou ao carregar a classe "org.slf4j.impl.StaticLoggerBinder" |
Maven 3.1.0 | qualquer | git-commit-id-plugin:2.1.14, 2.1.15, 2.2.0, 2.2.1, 2.2.3 não funciona - requer maven versão 3.1.1 |
Maven 3.3.1 | qualquer | git-commit-id-plugin:2.1.14 não funciona |
Maven 3.3.3 | qualquer | git-commit-id-plugin:2.1.14 não funciona |
Nota: Como exemplo - esta tabela deve ser lida como: Para Maven 3.1.0
any
versão do plugin deve funcionar, além dos listados nas Notes
terem as limitações listadas.
Se você realmente deseja usar snapshots , aqui está o repositório no qual eles estão implantados. Mas eu recomendo usar apenas versões estáveis, do Maven Central... :-)
< pluginRepositories >
< pluginRepository >
< id >sonatype-snapshots id >
< name >Sonatype Snapshots name >
< url >https://s01.oss.sonatype.org/content/repositories/snapshots/ url >
pluginRepository >
pluginRepositories >
Instantâneos mais antigos (versão anterior 5.X) estão disponíveis em
.
Se você apenas quiser ver o que o plugin pode fazer, você pode clonar o repositório e executar
mvn clean install -Dmaven.test.skip=true && mvn clean package -Pdemo -Dmaven.test.skip=true
Este projeto é mantido atualmente graças a: @ktoso (fundador), @TheSnoozer
Eu gostaria de agradecer muito a algumas dessas pessoas por suas sugestões e/ou pull requests que ajudaram a tornar este plugin tão popular quanto é hoje:
Estou lançando este plugin sob a GNU Lesser General Public License 3.0 .
Você é livre para usá-lo como desejar, o texto completo da licença está anexado no arquivo LICENSE.
A melhor maneira de solicitar recursos/melhorias é através da seção Problemas no GitHub - é melhor do que e-mail porque não perderei quando tiver um dia de "caixa de entrada de milhões de e-mails" e talvez alguém tenha alguma ideia ou queira votar positivamente seu problema.
Isso é tudo pessoal! Feliz hacking!