2013-08-20 2 views
-1

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

Répondre

1

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:

  • ce qui se passe si vous prolongez votre génération pour inclure quelque chose d'autre après le but 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-explodedqui 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?
Questions connexes