Как найти 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-файла он отображает пару представлений, чтобы увидеть зависимости в соответствии с вашими требованиями.