Как найти maven-зависимости любого проекта?

Я пытаюсь создать отдельный проект, который может найти maven зависимости любого данного проекта. Я имел в виду образцы эфира, но не смог найти способ определить другой проект для нахождения зависимостей.

Как показано на следующем рисунке 1, у Проекта 1 есть зависимости от проекта 2, а у проекта 2 есть зависимости от проекта 3. Если я выберу проект 1 из средства поиска зависимостей, он должен показать все зависимости проекта 1, которые являются проектом 2.

Я имел в виду следующий фрагмент кода Aether, но я не мог найти способ установить другой проект (путем установки pom-файла или каталога проекта)

    RepositorySystem system = Booter.newRepositorySystem();

    RepositorySystemSession session = Booter.newRepositorySystemSession( system );

    Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-impl:1.0.0.v20140518" );

    ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
    descriptorRequest.setArtifact( artifact );
    descriptorRequest.setRepositories( Booter.newRepositories( system, session ) );

    ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest );

    for ( Dependency dependency : descriptorResult.getDependencies() )
    {
        System.out.println( dependency );
    }

2 ответа

Решение

Вам не нужно делать это программно. Вы можете просто вызвать зависимость: tree:

mvn dependency:tree

Я также рекомендую вам вызвать его с -Dverbose в случае, если вам действительно очень трудно понять, почему определенная версия зависимости выбирается над другой (которую вы, возможно, ожидаете использовать вместо нее).

Или, в качестве альтернативы, если вы хотите видеть зависимости в плоской форме, вы также можете использовать зависимость: список

mvn depenency:list

Если вы используете eclipse с плагином maven2, то при открытии pom-файла он отображает пару представлений, чтобы увидеть зависимости в соответствии с вашими требованиями.

Другие вопросы по тегам