2011-11-25 14 views
8

मैं जेटली 7+ को ग्रेडल बिल्ड के साथ चलाने के लिए चाहता हूं, लेकिन दुर्भाग्यपूर्ण दिखता है कि जेटीरुन के साथ ऐसा करने का कोई तरीका नहीं है। तो शायद सबसे सरल विचार प्राप्त करने के लिए क्या मैं चाहता हूँ कस्टम लक्ष्य का उपयोग करने के होगा:ग्रोवी/ग्रेडल के साथ निर्दिष्ट युद्ध के साथ जेट्टी 7+ कैसे चलाएं?

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

अशुभ मैं सिर्फ Gradle साथ शुरू किया जिससे या तो ग्रूवी पता नहीं है, तो यह मुझे उचित लक्ष्य बनाने के लिए के लिए मुश्किल है। मैं इंटरनेट पर देख रहा था लेकिन मुझे कोई समाधान नहीं मिला। क्या कोई मुझे कुछ नमूना ग्रोवी कोड के साथ मार सकता है जो जेटी के साथ मौजूदा जार चला सकता है?

+0

की [संभव डुप्लिकेट कोई आसान तरीका Gradle से (jettyRun साथ की तरह) घाट 8 को चलाने के लिए है? ] (http://stackoverflow.com/questions/8263168/is-there-any-easy-way-to-run-jetty-8-from-gradle-like-with-jettyrun) –

उत्तर

14

ठीक है, मुझे पता चला कि कैसे सीधे घाट का उपयोग कर रिपोजिटरी से इसे चलाने के लिए:

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 
} 
+0

कैसे कर सकते हैं: –

+0

आप संदर्भ पथ कैसे निर्दिष्ट करते हैं? मैंने कोशिश की --पथ संदर्भपैथ। यह काम नहीं करता है। मैं इसे लॉग में देख सकता हूं: o.e.j.w.WebAppContext {/, null} – singhspk

1

घाट प्लगइन वर्तमान

पर घाट 6.1.25 का समर्थन करता है

आप कुछ इस तरह का उपयोग कर सकते हैं:

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 { 
     ... 
    } 
    } 
} 
+0

हाँ, मुझे यह पता है कि यह संभव है इसे इस तरह से करें, लेकिन मुझे यह लाइन पसंद नहीं है: "jettyRoot = '/ path/to/your/jetty/root'"। क्या जेटी को रनटाइम निर्भरता के रूप में जोड़ना संभव है और किसी भी तरह से मार्ग प्राप्त करें जहां धीरे-धीरे इसे सहेज लिया गया है (लाने के बाद)? { jetty7 } विन्यास निर्भरता मैं ext.jettyRoot = configurations.jetty7 –

+0

आप एक निर्भरता के रूप में घाट 7 जोड़ सकते हैं { jetty7 "org.mortbay.jetty: +: घाट"} जेट्टी 8 का उपयोग करने वाला एक कार्य बनाएं, और जेटीरुनवायर की नकल करें जो युद्ध को पैकेज करता है और इसे सर्वर पर तैनात करता है? –

3

जेटी चींटी कार्यों का उपयोग करके यहां एक कार्य संस्करण है। इसने अंततः मुझे 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") 
} 
+0

मुझे कोई आईपी पता नहीं दिया गया है। मेरा मुख्य लक्ष्य एक ही स्थानीय क्षेत्र में अन्य उपकरणों के माध्यम से मेरी वेब सेवा को कनेक्ट करना है। – masiboo

संबंधित मुद्दे