No projeto que estou trabalhando, estou usando Maven, mas nem todas suas dependências estão.
Uma destas dependências continua sendo alterada, e para colocar ela no meu projeto devemos seguir os segintes passos:
- O jar cliente é gerado, sempre com o mesmo nome, a partir da execução de um script ant;
- Instalo o jar no repositório local do maven, mudando o nome do jar para adicionar a tag do CVS.
Um desenvolvedor do time precisou fazer um script que baixa essa dependência e faz esse processo de build. Mas, para isso precisava da versão do jar, que o projeto em que trabalho depende. A forma para fazer isso foi ler o pom.xml e pegar a versão que o projeto depende.
Seguem os passos:
1. Pegar a tag com a dependência:
grep -B 2 -A 2 "foo-client" pom.xml
Resultado:
<dependency>
<groupId>com.beyondclick.foo</groupId>
<artifactId>foo-client</artifactId>
<version>1.2.42</version>
</dependency>
2. Pegar, somente, a tag com a versão:
grep '<version>'
Resultado:
<version>1.2.42</version>
3. Pegar somente o conteúdo. Para isso vou usar o sed, substituindo a tag por nada ;)
sed 's#</*version>##g'
Observe o uso do ‘/*’ para informar que deve substituir o fechamento da tag e o ‘g’, no final, para indicar que deve substituir todas as ocorrências.
Resultado:
1.2.42
Finalmente, encadeando tudo no bash:
grep -B 2 -A 2 "foo-client" pom.xml | grep '<version>' | sed 's#</*version>##g'