Gradle jettyRun: как эта штука работает? - PullRequest
5 голосов
/ 23 октября 2011

Обычно я запускаю Jetty, создавая экземпляр Сервера, устанавливая соединитель, обработчик и LifeCycleListener, а затем вызывая start() на экземпляре Сервера. Я не имею ни малейшего представления, как это сделать с помощью задачи jettyRun в Gradle. Документация сбивает меня с толку, и мне еще предстоит найти пример того, как эта задача работает, кроме страницы за страницей gradle jettyRun.

Это задание мне нравится, потому что оно якобы возвращается сразу после выполнения. Это полезно для запуска тестов Selenium после запуска моего веб-приложения от Jenkins. Я пытался сделать это с помощью задачи JavaExec, но это не сработает, поскольку задача JavaExec не завершается, пока не завершится и базовая JVM.

Ответы [ 2 ]

4 голосов
/ 23 октября 2011

Похоже, вы хотите запустить Jetty для встроенных тестов в контейнере.Помимо просмотра исходного кода, эти два сообщения помогут вам начать:

Ключевая функция, которую вы ищете, начиная Jetty в фоновом режиме, это jettyRun.daemon = true.

2 голосов
/ 20 июня 2013

То, что я использую для интеграционного теста в build.gradle, выглядит ниже. Я думаю, что этот код прост и интуитивно понятен.

test {
    exclude '**/*IntegrationTest*'
}

task integrationTest(type: Test) {
    include '**/*IntegrationTest*'
    doFirst {
        jettyRun.httpPort = 8080    // Port for test
        jettyRun.daemon = true
        jettyRun.execute()
    }
    doLast {
        jettyStop.stopPort = 8091   // Port for stop signal
        jettyStop.stopKey = 'stopKey'
        jettyStop.execute()
    }
}
...