Perché Maven 3 arrende a sostegno dell'applicazione $ dichiarazione di versione?
-
26-09-2019 - |
Domanda
Come si può vedere dal titolo, voglio chiedere che il caso di in Maven 3 non v'è alcun supporto per $ versione pom.xml più. Dobbiamo dare davvero una costante ogni volta che in ogni progetto in ogni file di configurazione e le relative pom.xml ancora e ancora? Come possiamo evitare di fare questo? Come possiamo utilizzare un metodo di controllo delle versioni come $ versione?
Soluzione
Il ${version}
espressione è deprecato, si dovrebbe usare ${project.version}
invece, ma entrambi sono ancora supportati e certamente non è necessario una proprietà personalizzata.
Il seguente solo funziona bene per me con Maven 3:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>services</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
E anche dare un'occhiata alla mia risposta precedente Attenzione sull'uso project.parent.version come la versione di un modulo in Maven 3 , il modo in cui si sta utilizzando version
(sulla base di quello che ho visto nei commenti in un'altra risposta) non ha molto senso IMHO e Maven 3 in realtà suggerisce gentilmente di seguire una best practice. Basta ereditare la versione.
Altri suggerimenti
Utilizzando una macro all'interno dell'elemento superiore <version/>
e la versione nell'elemento <parent/>
mai lavorato in Maven 2. Sembrava di lavoro, ma ha causato solo confusione a valle. Se questo non è quello che si sta parlando, si prega di chiarire la tua domanda.
L'errore sotto mostra deprecazione di $(artifactId}
e ${version}
[ATTENZIONE] L'espressione $ {} artifactId è deprecato. Si prega di utilizzare $ {} Project.artifactId invece. [ATTENZIONE] L'espressione $ {version} è deprecato. Si prega di utilizzare $ {} project.version invece. [AVVERTIMENTO] [ATTENZIONE] Si consiglia vivamente per risolvere questi problemi, perché minacciare la t ha la stabilità della vostra generazione. [ATTENZIONE] [ATTENZIONE] Per questo motivo, le versioni future Maven potrebbero non supportare buildin g tale progetti malformati.
Il messaggio di avviso incantesimi fuori. Sostituire ${artifactId}
con ${project.artifactId}
, e ${version}
con ${project.version}