我有一个在gradle中有 jetty 插件的JAX-RS项目。我想用gretty替换jetty插件,因为gradle 4和其他版本不支持jetty。运行gretty插件时出现以下错误。
任务':appRunWar'的执行失败。
包含 jetty 插件的build.gradle代码
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代替 jetty
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...
最佳答案
首先,不要使用Akhikhl's gretty,因为它不再维护,并且在某些 jetty 版本中显示出困难,例如。 jetty94和jetty93。此外,不支持Java版本9和10。
相反,您应该依赖gretty-gradle-plugin,它是直接维护的fork:
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-plugin可以在
'org.gretty'
上找到,而Akhikhl的gretty位于'org.akhikhl.gretty'
上。如果错误仍然存在,请提供完整的堆栈跟踪并相应地更新您的答案。关于java - 将 jetty 插件替换为gretty插件gradle时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50119925/