2011-01-20 22 views
6

digamos, ArtifactA depende de ArtifactB y ArtifactC también depende de ArtifactBMaven: Cómo encontrar artefactos que dependen de otro artefacto

entiendo que "mvn dependencia plug-in" puede ayudar a enumerar las dependencias de un proyecto/artefacto .

¿Pero qué tal el reverso? ¿Si deseo encontrar la lista de proyectos/artefactos que dependen de un artefacto dado? Del ejemplo anterior, dado ArtifactB, me gustaría obtener ArtifactA y ArtifactC

¿Cómo puedo lograrlo?

+0

Posible duplicado de [¿Cómo generar un gráfico de la dependencia entre todos los módulos de un proyecto Maven?] (Https://stackoverflow.com/questions/4084669/how-to-generate-a-graph-of-the -dependency-between-all-modules-of-a-maven-project) –

Respuesta

5

Maven solo puede operar en el proyecto actual, por lo que solo puede detectar dependencias entre el proyecto actual (o submódulos) y otros proyectos (incluidos los submódulos del proyecto actual).

Entonces, ¿qué se puede hacer es buscar submódulos específicos dependiendo de otros submódulos:

     mycompany:parent 
        /    \ 
     mycompany:child1  mycompany:child2 
      /    /    \ 
    mycompany:grandchild1 mycompany:grandchild2 mycompany:grandchild3 

Así es como se puede encontrar todos los subproyectos que tienen dependencias a grandchild3:

mvn validate -pl child2/grandchild3 -amd 

Esto ejecutará la fase validate en todos los proyectos dentro del proyecto actual que dependen de grandchild3.

2

No es nada fácil. Una opción es usar m2eclipse que tiene una función llamada Búsqueda de clase. En la vista de repositorios maven, haga clic con el botón derecho en un repositorio y habilite el índice completo. A continuación, navegue> Abra el tipo de maven - allí puede ver todos los artefactos disponibles según la convención del paquete java.

Otra opción es desarrollar su propia herramienta basada en JarAnalyzer por ejemplo, que aceptará un archivo JAR y buscará a través de su repositorio maven local, buscando los artefactos más apropiados que satisfagan los paquetes/clases importados del JAR.

+0

en realidad es fácil con 'mvn validate', ver la respuesta de @Sean Patrick Floyd – tsayen

Cuestiones relacionadas