2011-07-22 16 views
25

Me gustaría asegurarme de no incluir bibliotecas duplicadas en mi proyecto Maven. Estoy atrayendo bastantes dependencias de algunos repositorios diferentes, incluyendo main, repo de Spring y el repositorio de JBoss. ¿Cómo puedo ver un gráfico de las dependencias para asegurarme de que no dependa de múltiples versiones de una sola biblioteca?¿Ver un árbol de dependencias en Maven?

Sería tipo de un rollo si fue incluido algo así como org.springframework:spring-core:3.0.1.RELEASEyorg.springframework:org.springframework.spring-core:3.0.5.RELEASE que en realidad no se muestran como diferentes dependencias, tan extraño como suena, ya que los nombres de repositorio cosas de la primavera extrañamente. ¿Qué puedo hacer para asegurarme de que no tengo dependencias duplicadas?

Respuesta

37

El plugin maven dependency:tree debe hacer lo que quiera y mostrar el árbol.

Alternativamente force Maven2 to copy dependencies into target/lib para copiar los los artefactos en el directorio target/lib que también debería mostrar duplicados, pero a pesar de ello necesitará grep todas las POM en la ~/.m2/repository para ver qué biblioteca está tirando en la versión manual y que habría tiempo para grandes repositorios locales.

+3

Exactamente lo que necesitaba. Usted, señor, no carece de ganas. –

0

Las bibliotecas duplicadas pueden ser un problema, pero las clases duplicadas pueden existir incluso si no hay bibliotecas duplicadas. JBoss Tattletale puede analizar un conjunto de archivos jar y generar un informe que enumera todas las clases duplicadas. Hay un plugin Maven para ejecutar el informe: consulte http://docs.jboss.org/tattletale/userguide/1.2/en-US/html/maven.html

0

Si desea obtener una representación gráfica y de búsqueda del árbol de dependencias (incluidos todos los módulos de su proyecto, dependencias transitorias e información de desalojo), consulte UpdateImpact: https://app.updateimpact.com (servicio gratuito).

Utilizando la búsqueda, puede averiguar cuántas veces se importa una biblioteca determinada, qué módulos y en qué versiones, así como verificar si las versiones anteriores de una biblioteca son desalojadas por otras más nuevas.

responsabilidad: yo soy uno de los desarrolladores del sitio

+0

Detener el spamming/planing para promocionar el producto. Veo tu anuncio al menos en todas las preguntas. –

+0

El servicio es gratuito, por lo que no es más un anuncio que otros indicadores de sitios. Y creo que hay un total de 2 preguntas sobre el tema, por lo que apenas "todos" :) – adamw

Cuestiones relacionadas