Recuperar a versão de uma dependência, em um pom, no bash

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:

  1. O jar cliente é gerado, sempre com o mesmo nome, a partir da execução de um script ant;
  2. 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'

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s