3
respostas

Como eu evito de acidentalmente sobrepor uma versão do meu projeto?

Exemplo: tenho uma versão gerada com tag do controle de versão já aplicada e posso esquecer de alterar no POM a propriedade version, aí quando der um mvn install ele vai sobrepor o meu arquivo. Tem alguma forma de evitar isso? Qual é uma boa prática? Pergunto isso porque se a equipe não for acostumada a trabalhar com Maven, pode facilmente esquecer de alterar a propriedade e acabar causando um problema.

3 respostas

se você definir sua dependência com a versão declarada do pacote, você vai manter sempre sua depedencia naquela versão, exemplo é o hibernate, se você adiciona hibernate-4.1, você pode dá quanto mvn install quiser, ele sempre baixará o 4.1!

Francisco,

Vou tentar explicar melhor. Tenho um projeto "produtos" e o meu POM está na versão 1.0.

Tenho outro projeto "loja" que depende do "produtos" na versão 1.0.

O projeto "produtos" na versão 1.0, já foi aplicado a tag do controle de versão e não deveria mais ser alterado.

Porém, por engano, um programador foi lá e alterou o código e rodou o mvn install no projeto "produtos" sem alterar a versão para 1.1, por exemplo.

Aí neste caso, quando for rodar o projeto "loja" vou ter o novo .jar ao invés do .jar correto.

Entendeu?

É esse comportamento que gostaria de saber se temos como evitar.

entendi agora, ok... por mas que a ferramenta seja responsável por evitar o conflito , dentro de determinadas regras, a regra é especifica a versão, não existe forma de fazer o maven verifica que irá haver conflito, é por isso é recomendando indica a versão, se não indicação da versão pode gerar o erro, essa mesma forma é usado nos gestores como Composer,bower,gradle... não importa, a regra é coloca a versão para evita o conflito, sem a versão, ira correr o risco de conflitar!