Программные сборки с использованием Maven 3 API

Прежде чем вы спросите, почему я могу просто запустить процесс для выполнения mvn, я хочу выполнить сборку Maven через API Maven, чтобы я мог собрать информацию о том, что происходит в сборке, произведенных артефактах и т. Д. И т. Д. После зависимости отorg.apache.maven:maven-core:jar:3.0.4Я написал следующий метод в попытке сделать такую вещь:

public static void build(File directory, File pom) {
    Maven maven = new DefaultMaven();
    MavenExecutionRequest exec = new DefaultMavenExecutionRequest();
    exec.setBaseDirectory(directory);
    exec.setPom(pom);
    MavenExecutionResult result = maven.execute(exec);
    MavenProject proj = result.getProject();
    Artifact art = proj.getArtifact();
    System.out.println(art);
}

Однако этот код не работает вmaven.execute из-за исключений нулевого указателя. Эти исключения нулевого указателя в основном везде из-за закрытых полей вDefaultMaven не инициализируется. Все они отмечены@Requiredтак что я предполагаю, что это как-то связано с Plexus.

Как я могу успешно использовать Maven для выполнения такой сборки?

Ответы на вопрос(2)

Ваш ответ на вопрос