Как я могу использовать Maven Artifact Resolver для перечисления транзитивных зависимостей?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как я могу использовать Maven Artifact Resolver для перечисления транзитивных зависимостей?

Сообщение Anonymous »

Я работаю над приложением для моей компании, которая должна разрешить зависимости для проекта Maven. Это автономное приложение, а не плагин Maven. Единственное, что я пытаюсь сделать в данный момент, - это распечатать разрешенные зависимости, чтобы подтвердить, что они были найдены. Я использую модель Apache Maven (

Код: Выделить всё

v4.0.0-alpha-2
), Apache Maven Artifact Resolver () и реализация Maven Artifact Resolver (), чтобы поддержать мое усилие. Мне не повезло, чтобы найти примеры обновления в дату или документацию. Это код, который я подготовил: < /p>

Код: Выделить всё

public static void main(String[] args)
throws LoadException, IOException, XmlPullParserException, DependencyResolutionException {
MavenXpp3Reader reader = new MavenXpp3Reader();
Model model = reader.read(new FileReader(new File("C:\\Users\\lc70844\\eclipse-workspace\\test\\pom.xml")));

DefaultRepositorySystemSession session = new DefaultRepositorySystemSession();
DefaultRepositorySystem repositorySystem = new DefaultRepositorySystem();

for (Dependency dependency : model.getDependencies()) {
DependencyRequest request = new DependencyRequest();
request.setRoot(new DefaultDependencyNode(
new org.eclipse.aether.graph.Dependency(toArtifact(dependency), dependency.getScope())));
DependencyResult result = repositorySystem.resolveDependencies(session, request);
result.getArtifactResults().stream().map(a -> a.getArtifact())
.map(a -> a.getGroupId() + ":" + a.getArtifactId() + ":" + a.getVersion()).forEach(System.out::println);
}
}
< /code>
Это бросает исключение, говоря, что «Локальный репозиторий системы репозитория системы репозитория не может быть нулевым». Это довольно эксплуатационно; Мы все знаем, что мне нужно сделать. Тем не менее, DefaulTrepositySystemsession#SetLocalRepositoryManager (LocalRepositoryManager) 
требует параметра LocalRepositoryManager , который у меня есть проблемы с выяснением, как настроить. Репозиторий, который я хочу использовать, - это локальное репо at: %userprofile %/. M2/Repository .
Я нашел несколько подобных вопросов, относящихся к моей проблеме, но они, похоже, имеют неправильный контекст или используют устаревшие библиотеки для достижения своей цели. Я надеюсь на надежное, современное решение. < /P>
Надеюсь, я меньше всего направляюсь в правильном направлении. Что еще мне нужно сделать, чтобы получить мой список зависимостей? Требуется слишком много времени, чтобы раскрутить процесс Maven, и анализ вывода журнала для получения путей файла не является чистым подходом. Я работаю над тем, чтобы сделать свое приложение более эффективным, и использование Maven Invoker не является эффективным методом.

Подробнее здесь: https://stackoverflow.com/questions/742 ... pendencies
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»