Lorsque je lance une guerre mvn: guerre, je veux que seul le fichier war soit créé. Pas besoin de dossier projet explosé sous le dossier cible. Comment limiter cela?guerre Maven: guerre avec restriction
guerre mvn: guerre
Lorsque je lance une guerre mvn: guerre, je veux que seul le fichier war soit créé. Pas besoin de dossier projet explosé sous le dossier cible. Comment limiter cela?guerre Maven: guerre avec restriction
guerre mvn: guerre
Le « dossier de projet explosé » est pas là pour votre confort de visualisation - ça ressemble à ça à cause de how the Maven build lifecycle is constructed.
Une build Maven exécute une séquence de phases , et le plugin objectifs exécutés dans les phases ultérieures ont des attentes quant à ce qu'ils trouveront dans le dossier target
- qui est celui où le processus de construction a lieu.
Par exemple, le war:war
goal is bound to the package
phase.
Précédemment, il y a la phase compile
, où le maven-compiler-plugin
fonctionnera. Et c'est ainsi que vos classes Java compilées finissent dans WAR
- elles sont compilées en fichiers .class
dans un sous-répertoire de target
, puis, plus tard, le plugin war
les récupère et les empaquette dans le WAR
.
La seule façon d'obtenir le résultat souhaité serait d'ajouter une tâche antrun
ou similaire qui tout supprimer mais le WAR
, après le WAR
est emballé.
Mais cette est une mauvaise idée. Si vous ne savez toujours pas pourquoi, considérer les points suivants:
war
(par exemple, en verify
), qui attend restant présente des objets transitoires de la construction en target
? Ou, mieux encore, utilisez un objectif comme jetty:run-exploded
qui nécessite ces fichiers? Que se passe-t-il si votre IDE dépend de certains de ces fichiers pour le traitement correct de votre projet?