Por que o MAVEN 3 desiste da declaração do aplicativo $ Version?
-
26-09-2019 - |
Pergunta
Como você vê no título, quero pedir que o caso de Maven 3 Não há mais suporte para $ versão em pom.xml. Temos que realmente escrever uma constante sempre em cada projeto em todos os arquivos de configuração do POM.XML e relacionados repetidamente? Como podemos evitar fazer isso? Como podemos usar um método de versão como $ versão?
Solução
A expressão ${version}
está obsoleto, você deve usar ${project.version}
Em vez disso, mas ambos ainda são suportados e você certamente não precisa de uma propriedade personalizada.
A seguir, funciona bem para mim com o Maven 3:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>services</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
E também dê uma olhada na minha resposta anterior para Aviso sobre o uso do Project.Parent.version como a versão de um módulo no Maven 3, a maneira como você está usando version
(Com base no que vi nos comentários em outra resposta) não faz muito sentido IMHO e MAVEN 3, na verdade, sugerem seguir uma prática recomendada. Apenas herde a versão.
Outras dicas
Usando uma macro dentro do topo <version/>
elemento e a versão no <parent/>
O elemento nunca funcionou no Maven 2. Parecia funcionar, mas não causou nada além de confusão a jusante. Se não é disso que você está falando, esclareça sua pergunta.
O erro abaixo mostra a depreciação de $(artifactId}
e ${version}
AVISO] A expressão $ {ArtifactId} está depreciada. Use $ {Project.artifactId} em vez disso. [Aviso] A expressão $ {versão} está depreciada. Use $ {Project.version} em vez disso. [Aviso] [Aviso] É altamente recomendável corrigir esses problemas porque eles ameaçam a estabilidade da sua construção. [Aviso] [Aviso] Por esse motivo, as versões futuras do Maven podem não suportar mais projetos malformados.
A mensagem de aviso soletrou. Substituir ${artifactId}
com ${project.artifactId}
, e ${version}
com ${project.version}