documentacion docs groovy jetty war gradle embedded-jetty

docs - ¿Cómo ejecutar el embarcadero 7+ con una guerra específica con groovy/gradle?



grails documentation 2.4 4 (4)

el plugin jetty soporta el embarcadero 6.1.25 en la actualidad

Puedes usar algo como esto:

jettyRoot = ''/path/to/your/jetty/root'' task runJetty7 << { description = "Runs jetty 7" ant.java(dir: jettyRoot, jar: jettyRoot + ''/start.jar'', failOnError: ''true'', fork: ''true'') { classpath { ... } } }

Quiero ejecutar Jetty 7+ con gradle build, pero desafortunadamente parece que no hay forma de hacer esto con jettyRun. Probablemente la idea más simple para lograr lo que quiero sería usar un objetivo personalizado:

task runJetty << { def server = new Server() // more code here server.start() server.join() }

Mala suerte Acabo de comenzar con Gradle y tampoco sé groovy, así que es difícil para mí crear el objetivo adecuado. Estaba buscando en Internet, pero no pude encontrar ninguna solución. ¿Alguien puede golpearme con un código groovy de muestra que puede ejecutar jar existente con embarcadero?


Ok, descubrí cómo ejecutarlo usando embarcadero directamente desde el repositorio:

jettyVersion = "8.1.0.RC0" configurations { jetty8 } dependencies { jetty8 "org.mortbay.jetty:jetty-runner:$jettyVersion" } task runJetty8(type: JavaExec) { main = "org.mortbay.jetty.runner.Runner" args = [war.archivePath] classpath configurations.jetty8 }


Aquí hay una versión de trabajo, usando las tareas de embarcadero. Esto finalmente me permitió el control adecuado con deamon = true.

configurations { jetty } dependencies { jetty ''org.eclipse.jetty:jetty-ant:9.0.4.v20130625'' } task jetty(dependsOn: build) << { ant.taskdef(name: ''jettyRun'', classname: ''org.eclipse.jetty.ant.JettyRunTask'', classpath: configurations.jetty.asPath, loaderref: "jetty.loader") ant.typedef(name: "connector", classname: "org.eclipse.jetty.ant.types.Connector", classpath: configurations.jetty.asPath, loaderref: "jetty.loader") ant.jettyRun(daemon:true, stopPort: 8999, stopKey: "STOP") { webApp(war: THE_WAR_PRODUCING_TASK.archivePath, contextPath: ''/context'') connectors { connector(port: 9000) } systemProperties { systemProperty(name: ''environment.type'', value: ''development'') } } } task jettyStop << { ant.taskdef(name: ''jettyStop'', classname: ''org.eclipse.jetty.ant.JettyStopTask'', classpath: configurations.jetty.asPath) ant.jettyStop(stopPort: 8999, stopKey: "STOP") }