web-dev-qa-db-fra.com

Envoyez la sortie Maven à la console et au fichier journal à l'aide de pom

Question: Lorsque j'exécute Maven dans Eclipse, comment puis-je envoyer la sortie de la console au fichier? 

Je voudrais y parvenir en utilisant un paramètre pom ou un plugin maven. Je souhaite pas vouloir modifier les configurations d'exécution ou les paramètres système maven.

Pour référence, j'utilise Windows 7, Eclipse Luna, Java 6, Maven 3.

9
Zack

Selon les options de ligne de commande officielles vous pouvez utiliser -l,--log-file <arg> qui fournit les éléments suivants:

Fichier journal dans lequel toutes les sorties de construction iront.

En tant que tel, en cours d'exécution:

mvn clean install -l output.log

N'imprimerait rien sur la console et redirigerait automatiquement la sortie de la construction entière vers le fichier output.log.

Si vous ne voulez pas le taper à chaque fois (ou si vous ne voulez pas utiliser la ligne de commande) et que vous le voulez comme option par défaut (bien que ce soit un cas rare), vous pouvez utiliser le nouveau comportement des options de ligne de commande disponible. depuis la version 3.3.1 et avoir un dossier .mvn dans lequel se trouve le fichier pom.xml concerné et un fichier maven.config dans celui-ci en fournissant simplement la ligne suivante:

-l output.log

C'est-à-dire que le fichier .mvn/maven.config remplace MAVEN_OPTIONS uniquement pour son projet, localement où il a été créé, avec les options qu'il fournit, sans impact sur les autres versions selon les paramètres Maven de MAVEN_OPTIONS.

Il s'agit d'une solution agnostique IDE (nouvelle fonctionnalité intégrée de Maven) et locale d'un projet, mais non fournie via une simple édition de POM, ce qui n'est pas possible depuis la première phase de Maven default life phases du cycle est validate, qui:

valider le projet est correct et toutes les informations nécessaires sont disponibles

Ainsi, lors de la construction, lorsque la construction a déjà commencé (et la sortie générée), le fichier pom.xml est validé. Il est donc trop tard pour rediriger la sortie de la construction à ce stade, en fonction de propriétés/plugins POM.

16
A_Di-Matteo

Allez à exécuter en tant que et choisissez Run Configuration -> Commons -> Select a file.
Cela devrait rediriger votre sortie vers le fichier que vous avez spécifié.

5
RITZ XAVI

Selon ceci vous pouvez essayer d’éditer le ${MAVEN_HOME}/conf/logging/simplelogger.properties. J'ai fait un essai rapide et la sortie de maven est redirigée, mais tout ce qui est écrit dans stdout (tests, par exemple) écrit toujours sur la console

4
agnul

Pourquoi ne pas créer un fork de M2E et le modifier pour lire le fichier de sortie de la configuration de lancement à partir de pom.xml?

https://github.com/Eclipse/m2e-core.git

2
Bernhard Stadler

Une solution possible consiste à définir le format de sortie dans le mvn file. Par exemple, dans le répertoire /usr/bin, ajoutez la sortie souhaitée en indiquant le chemin dans lequel le journal sera enregistré à la fin de exec "$JAVACMD" \ ligne: | tee /home/maven-log.log .

Cependant, cela ne fonctionne que lorsque le maven est appelé par la ligne terminale; appelées par des IDE, comme Eclipse, ces solutions ne fonctionnent pas.

0
leuson