Una precisazione in ritardo su due punti importanti
Dove posizionare plugin
Un plugin
dovrebbe infatti essere aggiunti nella maggior parte dei casi all'interno della sezione build
/plugins
, tuttavia c'è una differenza importante tra il collocamento entro plugins
contro il posizionamento entro pluginManagement
/plugins
.
Questo malinteso è spesso la causa di un plugin non Richiamato in Maven o un risoluzione dei problemi più difficili:
- Plugin sotto
build
/plugins
sono direttamente parte della generazione predefinito Maven, se specificano un execution
o se configurano qualcosa per la build predefinita (vedi sotto)
I plug-in sotto build
/pluginManagement
/plugins
non sono necessariamente parte del build predefinito di Maven, ovvero, i s una gestione, è un suggerimento per farti sentire: ti capita di usare questo plugin, quindi ti preghiamo di usare la versione, la configurazione, le esecuzioni che specifichi qui, in questa gestione.
Ma che cosa significa utilizzare ? Mezzi: se lo stesso plugin è anche presente nella sezione build
/plugins
, quindi applicare questa gestione (e solo allora sarà efficace); o se il plugin viene richiamato per impostazione predefinita da Maven, quindi applicarlo anche.
Ma come viene richiamato un plug-in per impostazione predefinita? Questo fa parte della filosofia principale di maven: convention over configuration. Per convenzione, quando si specifica un certo packaging
(valore predefinito jar
, ma può essere war
ad esempio), si desidera richiamare determinati plug-in. Per creare un jar
, by default, richiamare lo maven-jar-plugin
; per creare un war
, by default, richiamare lo maven-war-plugin
e così via. Pertanto, se si specifica una configurazione di plug-in in build
/pluginManagement
/plugin
per un plug-in che ha un'associazione predefinita per il build di Maven, verrà utilizzato anche.
ordinazione
Per quanto riguarda l'ordinamento delle sezioni all'interno del file pom.xml
, un ulteriore chiarimento è richiesto: è infatti irrilevante nella maggior parte dei casi, tuttavia l'ordine di plugin
elemento wihtin il build
/plugins
la sezione potrebbe essere importante Dal momento che Maven 3.0.3 (MNG-2258
), diverse esecuzioni di plug-in collegate alla stessa fase di Maven verranno richiamate nell'ordine di dichiarazione nel file pom.xml
. Cioè, l'ordine è importante in questo caso, poiché potrebbe influire sul comportamento della compilazione.
Inoltre, anche al fine di dependency
dichiarazioni possono influenzare il vostro costruire verso Dependency Mediation, vale a dire, le prime vittorie di dipendenza dichiarati in caso di conflitto contro una dipendenza transitiva. Quindi, ancora una volta, l'ordinamento è importante in alcuni casi.
Ultimo ma non meno importante, anche se l'ordinazione non è importante per altre sezioni del file pom.xml
, buona abitudine è quella di seguire ufficiale Maven recommendations e, come una versione semplificata, seguire questo ordine di dichiarazione:
<project>
<modelVersion/>
<parent/>
<groupId/>
<artifactId/>
<version/>
<packaging/>
<properties/>
<dependencyManagement/>
<dependencies/>
<build/>
<reporting/>
<profiles/>
</project>
Il sortpom-maven-plugin
può anche essere utilizzato per applicare automaticamente questo ordinamento di serie, è sufficiente invocare il seguente sulla questione pom.xml
del file:
mvn com.github.ekryd.sortpom:sortpom-maven-plugin:2.5.0:sort \
-Dsort.keepBlankLines -Dsort.predefinedSortOrder=recommended_2008_06
Per approfondimenti:
Ti accumulo molto. –