Я пытался решить эту проблему: учитывая файл pom.xml и соответствующий каталог, найдите все файлы Java, которые будут составлены. Я попытался решить это, используя org.apache.maven.model.model , но для определенных более сложных иерархий проекта это становится невозможным. Таким образом, я решил, что было бы проще использовать модули Maven более высокого уровня вместо того, чтобы пытаться проанализировать их сам. Вот проблема, так как эта экосистема настолько зрелая, количество инструментов, которые я должен использовать, чтобы получить что -то простое и работать, является огромным среди устаревших частей, и мне трудно выполнять простые задачи. Из того, что я понял, все внутренние инструменты Maven используют DI, ранее использовавшиеся сплетение и теперь переключались на SISU, но все еще поддерживают совместимость с обратной связью с классами сплетения. Это описание того, что я хотел бы случиться: < /p>
File pomFile = new File("my/path/pom.xml");
ProjectBuilder pj = \* somehow initialize Project Builder *\;
ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
buildingRequest.setProcessPlugins(false);
buildingRequest.setResolveDependencies(false);
ProjectBuildingResult result = pj.build(pomFile, buildingRequest);
MavenProject project = result.getProject();
System.out.println("Compile roots: " + project.getCompileSourceRoots());
System.out.println("Test roots: " + project.getTestCompileSourceRoots());
< /code>
Однако, используя все представленные по умолчанию инициализаторы просто делают ошибки: < /p>
Exception in thread "main" java.lang.NullPointerException: projectBuildingHelper cannot be null
at java.base/java.util.Objects.requireNonNull(Objects.java:259)
at org.apache.maven.project.DefaultModelBuildingListener.(DefaultModelBuildingListener.java:58)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:166)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:123)
< /code>
Может кто -нибудь, пожалуйста, направить меня в проект, используя этот API простым и идиоматическим образом, или некоторые ресурсы, объясняющие концепции. Вся помощь ценится. Спасибо. Я собираюсь использовать это для MSR, поэтому мне нужно приложение, которое работает для произвольных проектов Maven.
Подробнее здесь: https://stackoverflow.com/questions/797 ... r-projects
Как работать с org.apache.maven.project? Для более простых проектов ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1758879275
Anonymous
Я пытался решить эту проблему: учитывая файл pom.xml и соответствующий каталог, найдите все файлы Java, которые будут составлены. Я попытался решить это, используя org.apache.maven.model.model , но для определенных более сложных иерархий проекта это становится невозможным. Таким образом, я решил, что было бы проще использовать модули Maven более высокого уровня вместо того, чтобы пытаться проанализировать их сам. Вот проблема, так как эта экосистема настолько зрелая, количество инструментов, которые я должен использовать, чтобы получить что -то простое и работать, является огромным среди устаревших частей, и мне трудно выполнять простые задачи. Из того, что я понял, все внутренние инструменты Maven используют DI, ранее использовавшиеся сплетение и теперь переключались на SISU, но все еще поддерживают совместимость с обратной связью с классами сплетения. Это описание того, что я хотел бы случиться: < /p>
File pomFile = new File("my/path/pom.xml");
ProjectBuilder pj = \* somehow initialize Project Builder *\;
ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
buildingRequest.setProcessPlugins(false);
buildingRequest.setResolveDependencies(false);
ProjectBuildingResult result = pj.build(pomFile, buildingRequest);
MavenProject project = result.getProject();
System.out.println("Compile roots: " + project.getCompileSourceRoots());
System.out.println("Test roots: " + project.getTestCompileSourceRoots());
< /code>
Однако, используя все представленные по умолчанию инициализаторы просто делают ошибки: < /p>
Exception in thread "main" java.lang.NullPointerException: projectBuildingHelper cannot be null
at java.base/java.util.Objects.requireNonNull(Objects.java:259)
at org.apache.maven.project.DefaultModelBuildingListener.(DefaultModelBuildingListener.java:58)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:166)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:123)
< /code>
Может кто -нибудь, пожалуйста, направить меня в проект, используя этот API простым и идиоматическим образом, или некоторые ресурсы, объясняющие концепции. Вся помощь ценится. Спасибо. Я собираюсь использовать это для MSR, поэтому мне нужно приложение, которое работает для произвольных проектов Maven.
Подробнее здесь: [url]https://stackoverflow.com/questions/79775346/how-to-work-with-org-apache-maven-project-for-simpler-projects[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия