Подтвердить что ты не робот

Как запустить maven из java?

Я хочу выполнить команду maven из Java для разработки плагина. Я попробовал maven-embedder, но похоже, что он теперь не поддерживается. Кто-нибудь знает какой-нибудь другой инструмент, который можно использовать?

4b9b3361

Ответ 2

Использовать Maven Embedder

Встраивание Maven по-прежнему поддерживается и легко настраивается, поэтому это лучший вариант для вас.

Код Java

MavenCli cli = new MavenCli();
cli.doMain(new String[]{"clean", "install"}, "project_dir", System.out, System.out);

Конфигурация проекта

<dependencies>
    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-embedder</artifactId>
        <version>3.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.aether</groupId>
        <artifactId>aether-connector-wagon</artifactId>
        <version>0.9.0.M2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-http-lightweight</artifactId>
        <version>2.5</version>
    </dependency>
</dependencies>

Полностью рабочий пример: https://github.com/mariuszs/maven-cli-example

Ответ 3

Встраивание Maven действительно больше не поддерживается (только хадсон все еще использует его). Но, как и в hudson, есть несколько других способов запустить maven. Вы можете просто запустить maven как внешнюю программу:

Runtime.getRuntime().exec("mvn clean install");

Или вы могли бы подумать о создании ant script для maven. Этот script может быть затем вызван либо как внешняя программа, либо (если вам нужно больше контроля), добавив ant к вашему пути к классам и вызвав Antrunner.

UPDATE

Теперь приложение Maven теперь поддерживается, так что это ваш лучший вариант.