iBaffiPro ha scritto:
<!--/* Plugin che scarica a seconda dell'ambiente di sviluppo la singola dipendenza richiesta dal
progetto. */-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<!--/* E' un plugin di Maven che permette di dare un nome specifico al file .war. */-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>script</warName>
</configuration>
</plugin>
Sinceramente, non si capisce neanche il senso/utilità dei commenti che hai messo. Il maven-compiler-plugin non è quello che "scarica le dipendenze". È il plugin che si occupa della fase di compilazione. Punto.
iBaffiPro ha scritto:
Ti chiedo perché a me non funziona correttamente questo plugin in quanto per cambiare nome al .war non basta editare <warName> bensì cancellare la cartella "target".
Domani cambio nome a questa webapp, "script" è davvero inguardabile.
Succedono anche cose strane:
Aggiungo una versione del plugin al pom, la tolgo e tutto per magia si mette a funzionare.
Sbaglio sicuramente ad usare questo plugin.
Allora: una premessa innanzitutto. Te lo avevo già detto, Spring Boot ha una "opinione" sulle versioni di molte dipendenze e anche sui plugin. Queste versioni scelte da Spring Boot le vedi nel pom di spring-boot-dependencies che è il "parente" di spring-boot-starter-parent.
Ad esempio in Spring Boot 2.4.5, la versione
managed del maven-war-plugin è la 3.3.1 che è molto recente (anzi, è la
più recente, ad oggi, anche se è del Luglio 2020).
Queste versioni managed servono per far sì che nel TUO pom tu non debba per forza specificarle, perché già Spring Boot le ha dichiarate in quanto quelle sono le versioni garantite e già verificate che sono ok per quella versione di Spring Boot. Vale per gli starter, per molte dipendenze "notevoli" (es. log4j, junit, ecc...) e anche per svariati plugin.
E te lo avevo già detto sicuramente: con le versioni managed, se proprio vuoi impostarne una diversamente,
non va messo il <version> nella dipendenza/plugin ma va messa la property come è definita in questo caso da Spring Boot.
Se metti il <version>, un IDE "pignolo" ti può dare un warning del tipo "attenzione, stai facendo un override di una versione managed" (Eclipse mi dà un warning: "Overriding managed version 3.3.1 for maven-war-plugin").
Quindi meglio es.:
<properties>
<maven-war-plugin.version>3.3.0</maven-war-plugin.version>
.....
Ma a parte questo aspetto, c'è un modo banale per impostare il nome finale. L'ho detto prima: il default viene preso dal ${project.build.finalName} che si imposta semplicemente con
<build>
<finalName>tuonomedelwar</finalName>
....
Tutto lì, NON c'è bisogno di esplicitare il maven-war-plugin SOLO per questo (cioè se non devi configurare "altro" sotto <configuration>). Se non c'è il finalName, il default ulteriore è ${artifactId}-${version} .
iBaffiPro ha scritto:
Sono anche indeciso se caricare questo componente come plugin oppure come dipendenza.
Un plugin è .. un plugin! NON una dipendenza. Ma che stai dicendo?!