Maven Plugin Development - как сделать maven блок до завершения выполнения - PullRequest
0 голосов
/ 09 сентября 2011

У меня есть некоторый Java-код, который запускает веб-сервер и прослушивает запросы.Я хотел бы запустить веб-сервер с цели пользовательского плагина maven.

Это прекрасно работает (запускает мой веб-сервер и прослушивает запросы):

public static void main(String[] args) {
  MyWebServer webserver = new MyWebServer();
  webserver.startServer();
}

Я бы хотел поместить это в пользовательский плагин maven:

/**
 *
 * @goal start
 * 
 */
public class MyMojo
    extends AbstractMojo
{
    public void execute()
        throws MojoExecutionException
    {
        (new MyWebServer()).startServer();
    }
}

Это почти работает, за исключением того, что Maven не останавливается, чтобы позволить веб-серверу отвечать на запросы.Он вызывает startServer, а затем, кажется, останавливает его и сразу же продолжает выполнение других задач.

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

Спасибо, Дейв

1 Ответ

0 голосов
/ 12 сентября 2011

Немного взлома, но простое добавление System.in.read() делает свое дело:

/**
 *
 * @goal start
 * 
 */
public class MyMojo
    extends AbstractMojo
{
    public void execute()
        throws MojoExecutionException
    {
        try{
        (new MyWebServer()).startServer();

        System.out.println("Press any key to stop the server");
        byte name[] = new byte[100];
        System.in.read(name);
    } catch (Exception e) {
        System.out.println(e);
    }
    }
}

Я также нашел этот вопрос, который может быть полезен для других, работающих над плагинами maven: Плагин Maven выполняет другой плагин

...