Comment supprimer le plugin Maven assembly en sautant des fichiers qui sont déjà ajoutés? Ou permettre la réécriture?

pendant des semaines, j'ai lutté avec maven, pour qu'il déploie notre projet correctement."

j'ai presque fini mais j'ai un petit problème obstiné:

quand j'utilise le plugin Maven assembly avec le but "directory" comme dans

mvn assembly:directory

j'obtiens beaucoup de sortie de console comme la suivante:



[INFO] tomcat/conf already added, skipping

 [INFO] tomcat/conf/Catalina already added, skipping

 [INFO] tomcat/conf/Catalina/localhost already added, skipping

 [INFO] tomcat/webapps already added, skipping

J'ai écrit mon propre descripteur d'assemblage qui copie en gros plusieurs fichiers dans différents sous-répertoires de notre répertoire deploy. Des Messages comme ceux ci-dessus apparaissent chaque fois qu'un fichier d'un FileSet est copié à un endroit où un autre FileSet a déjà créé la structure de base du répertoire (et certains fichiers "par défaut" qui peuvent être écrasés).

donc, j'ai du mal à comprendre:

Comment puis-je soit 1) supprimer ces les messages (mais seulement les messages "déjà ajoutés") ou 2) permettent l'écrasement?

17
demandé sur Cœur 2010-04-08 03:47:12

6 réponses

les messages d'information proviennent de L'archiveur Plexus. Il y a un rapport de Bogue ouvert sur cette question:

http://jira.codehaus.org/browse/PLXCOMP-129

12
répondu vocaro 2010-12-27 06:45:52

le bug Plexus mentionné par vocaro a été corrigé. L'utilisation du plugin maven-assembly avec la version 2.4 (le plus élevé au moment de la rédaction) n'imprime pas les messages verbeux.

9
répondu Attila 2013-12-05 17:12:46

il est probablement préférable d'utiliser maven-resources-plugin avec copy-resources objectif de rassembler les répertoires dont vous avez besoin dans un seul endroit. Créez une exécution pour votre structure de répertoire de base et ajoutez des exécutions subséquentes pour les pièces personnalisées. Définir la propriété overwrite du but à true garantira que les fichiers personnalisés écraseront les valeurs par défaut.

puis dans votre descripteurs d'assemblage utiliser le filet que vous venez de faire.

2
répondu pharsfalvi 2012-01-23 09:54:20
  1. la Mise à niveau vers Maven 3.1.x ou plus-voir http://maven.apache.org/maven-logging.html

    la distribution standard Maven, à partir de Maven 3.1.0, utilise L'API SLF4J pour la journalisation combinée avec L'implémentation simple SLF4J.

  2. maintenant avec simplelogger nous avons un contrôle à grains fins sur les messages de journal. Pour identifier l'enregistreur est à l'origine des messages indésirables, modifier MAVEN_HOME/conf/logging / simplelogger.modifier les propriétés suivantes:

    org.slf4j.simpleLogger.showLogName=true

  3. observez les déchets indésirables dans votre sortie de construction:

    [INFO] org.codehaus.plexus.archiver.jar.JarArchiver - META-INF/MANIFEST.MF already added, skipping
    
  4. de retour à simplelogger.propriétés, réduire le niveau de journalisation pour les délinquance enregistreur(s) par le nom de classe (showLogName dos à faux)

    org.slf4j.simpleLogger.log.org.codehaus.plexus.archiver.jar.JarArchiver=warn

2
répondu Steve Jones 2014-01-22 18:15:59

si je comprends que votre question Est Correcte, vous devez utiliser le plugin Maven-dependency plugin pour copier des fichiers/les écraser au lieu d'utiliser le plugin d'assemblage...

1
répondu khmarbaise 2010-04-09 10:38:50

maven 3.0.4:

j'obtiens toujours ces messages quand je fabrique un seul pot ou des sources combinées pour la distribution. http://jira.codehaus.org/browse/PLXCOMP-129 ne semble pas être dans maven.

ma solution est d'utiliser divers modèles d'exclusion, et en particulier, %regex[..] pour les dossiers. Je ne sais pas si c'est stable ou général, et il est clair que cela doit être maintenu. Cependant, nous sommes dans la situation où nous obtenons tant de messages nous ne pouvons pas voir quand un vrai message apparaît, nous devons faire quelque chose.

Sauter L'avis, LICENSE -- j'ai mis les versions de texte fusionnées correctes plus tard dans l'Assemblée. Les partiels des dépendances ne sont pas assez bons de toute façon.

correspondant au nom du dossier exclut tout, pas le dossier lui-même. Les dossiers apparaissent dans la sortie, et aucun niveau D'information "sautant" les messages.

<unpackOptions>
  <excludes>
    <exclude>**/NOTICE*</exclude>
    <exclude>**/LICENSE*</exclude>
    <exclude>**/DEPENDENCIES*</exclude>
    <exclude>META-INF/**</exclude>
    <!-- Exclude folders - this removes "skipping" messages -->
    <exclude>%regex[.*/]</exclude>
  </excludes>
</unpackOptions>
1
répondu AndyS 2012-08-26 17:55:50