Ошибка при замене плагина Jetty на gretty плагин Gradle - PullRequest
0 голосов
/ 01 мая 2018

У меня есть проект JAX-RS, в котором есть подключаемый модуль Jetty. Я хочу заменить плагин Jetty на Gretty, поскольку Jetty не поддерживается в Gradle 4 и других версиях. Я получаю следующие ошибки при запуске gretty plugin.

Не удалось выполнить задачу ': appRunWar'.

java.lang.Exception: com / sun / jersey / spi / inject / InjectableProvider

код build.gradle, содержащий плагин Jetty

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'jetty'
apply plugin: 'eclipse'
jettyRun {
    httpPort = 8080
    reload = 'automatic'
    scanIntervalSeconds = 2
    daemon = false
}
//other things....

код build.gradle для замены молы на gretty

apply plugin: 'java'
apply plugin: 'war'
apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin'
apply plugin: 'eclipse' 
gretty {
    httpPort = 8080
    //contextPath = '/'
    servletContainer = 'jetty9'
    httpEnabled = true
}
//other things...

1 Ответ

0 голосов
/ 01 мая 2018

Прежде всего, не используйте Ахихла gretty, так как он больше не поддерживается и показывает трудности с некоторыми версиями причала, например. jetty94 и jetty93. Кроме того, нет поддержки версий Java 9 и 10. Вместо этого вы должны полагаться на gretty-gradle-plugin , который является прямой поддерживаемой вилкой:

plugins {
    id 'java'
    id 'war'
    id 'eclipse'
    id 'org.gretty' version '2.1.0'
}

gretty {
    //contextPath = '/'
}

//other things...

Конфигурация, которую вы предоставляете для gretty, является конфигурацией по умолчанию, вы можете удалить ее.
Конфигурация по умолчанию в ServerConfig.groovy выглядит следующим образом:

static ServerConfig getDefaultServerConfig(String serverName) {
    ServerConfig result = new ServerConfig()
    result.jvmArgs = []
    result.servletContainer = 'jetty9'
    result.managedClassReload = false
    result.httpEnabled = true
    result.httpsEnabled = false
    result.interactiveMode = 'stopOnKeyPress'
    result.scanInterval = 1
    result.loggingLevel = 'INFO'
    result.consoleLogEnabled = true
    result.fileLogEnabled = true
    result.logFileName = serverName
    result.redeployMode = 'restart'
    result.logDir = "${System.getProperty('user.home')}/logs" as String
    result.scanner = 'jetty'
    result.portPropertiesFileName = 'gretty_ports.properties'
    result.liveReloadEnabled = false
    return result
}

Имейте в виду, что плагин gretty-gradle-plug может быть найден в 'org.gretty', где gretty Akhikhl находится в 'org.akhikhl.gretty'. Если ваша ошибка не устранена, предоставьте полную трассировку стека и соответственно обновите свой ответ.

...