Как работать с org.apache.maven.project? Для более простых проектовJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как работать с org.apache.maven.project? Для более простых проектов

Сообщение 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 простым и идиоматическим образом, или некоторые ресурсы, объясняющие концепции. Вся помощь ценится. Спасибо.


Подробнее здесь: https://stackoverflow.com/questions/797 ... r-projects
Ответить

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

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

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

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

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