2010-02-15 5 views
3

je peux facilement voir s'il y a des conflits entre (transitif) versions de dépendance à l'aide:Comment afficher les conflits de dépendance dans 'le site mvn'

dépendance mvn: arbre -Dverbose = true

... cette volonté affiche l'arbre de résolution complète, y compris les éléments qui ont été omis (pour les doublons ou les conflits ou autres). Ce que je voudrais faire est d'ajouter l'arbre complet au rapport 'site mvn'. Actuellement, le rapport de site inclut l'arborescence de dépendances mais seulement comme résolu, c'est-à-dire, sans aucun conflit. Je vois dans le plugin de projet-info-reports qu'il n'y a actuellement aucun moyen de faire ce que je veux en utilisant le rapport standard.

J'ai essayé d'ajouter une section au pom pour inclure l'objectif maven-dependency-plugin 'tree' avec le fichier outputFile spécifié, mais il n'a pas été inclus lorsque j'ai exécuté 'mvn site'. Ce fut quelque chose comme ceci:

<reporting> 
    .... 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <reportSets> 
     <reportSet> 
      <id>deptree</id> 
      <reports> 
      <report>tree</report> 
      </reports> 
      <configuration> 
      <verbose>true</verbose> 
      <outputFile>${project.reporting.outputDirectory}/deptree.txt</outputFile> 
      </configuration> 

Bien sûr, l'objectif « arbre » est explicitement identifié comme pas un rapport, mais j'espérais au moins être en mesure de produire un fichier que je pouvais connecter à partir le site généré. Pas de dé.

Existe-t-il un moyen de forcer l'exécution d'un objectif de plug-in arbitraire lors de la génération de site? Est-ce que je n'ai absolument pas de chance ici? Évidemment je pourrais écrire mon propre plugin de reportage pour faire ceci, et/ou soumettre un patch pour le plugin de projet-info-reports, mais je veux m'assurer que j'ai épuisé toutes les options de maven intégrées.

(j'utilise Maven 2.1.0, mais je ne vois rien au sujet d'un changement à cette fonctionnalité dans les notes de version pour les versions ultérieures.)

Répondre

2

Est-il possible de forcer un arbitraire L'objectif du plugin à exécuter lors de la génération du site? Est-ce que je n'ai absolument pas de chance ici?

Juste pour répondre à votre question, vous pouvez lier un mojo à la phase pre-site du Site Lifecycle:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <executions> 
     <execution> 
      <id>tree</id> 
      <phase>pre-site</phase> 
      <goals> 
      <goal>tree</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 
<reporting> 
    ... 
</reporting> 

Si vous exécutez alors mvn site, dependency:tree se déroulera.

+0

Je ne peux pas croire que je n'ai pas essayé moi-même. Evidemment rétrospectivement: utilisez les phases du cycle de vie du site dans la section build comme d'habitude. J'étais tellement concentré sur la section de reportage que je ne l'ai même pas considéré. Merci! –

Questions connexes