लॉन्च करते समय ग्रैडल क्लासपाथ रनटाइम को बहिष्कृत करें मेरे पास मिल ग्रैडल वेब एप्लिकेशन प्रोजेक्ट का मूल भाग है और यह ठीक काम करता है लेकिन मैंने देखा कि ग्रैडल का रनटाइम क्लासपाथ जेटी में शामिल किया जा रहा है जिसमें वेब अनुप्रयोगों के साथ संघर्ष करने की क्षमता है ।JettyRun
नीचे ध्यान दें कि ग्रेडल लॉगबैक के थोड़ा पुराने संस्करण का उपयोग कर रहा है और एसएल 4 जे चेतावनी दे रहा है कि इसे कक्षा में कई बाइंडिंग मिलती हैं।
:jettyRun
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/dev/java/tools/gradle-1.0-milestone-5/lib/logback-classic-0.9.29.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/kirk.rasmussen/.gradle/caches/artifacts-3/ch.qos.logback/logback-classic/fd9fe39e28f1bd54eee47f04ca040f2b/jars/logback-classic-0.9.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
वहाँ शामिल करने से बच Gradle क्रम classpath बाहर करने के लिए एक तरह से जब jettyRun कार्य चल रहा है? मैं ग्रैडल के नवीनतम 1.0 मील का पत्थर 5 संस्करण का उपयोग कर रहा हूं।
मैं चींटी में जावैक कार्य में 'includeAntRuntime' की तर्ज पर कुछ ढूंढ रहा हूं।
http://ant.apache.org/manual/Tasks/javac.html
includeAntRuntime classpath में चींटी रन-टाइम पुस्तकालयों में शामिल करना है या नहीं; हाँ के लिए डिफ़ॉल्ट, जब तक build.sysclasspath सेट नहीं है। आमतौर पर इसे गलत पर सेट करना सबसे अच्छा होता है, इसलिए स्क्रिप्ट का व्यवहार पर्यावरण के प्रति संवेदनशील नहीं होता है जिसमें यह चल रहा है।
नीचे Stripped build.gradle:
apply plugin: 'groovy'
apply plugin: 'war'
apply plugin: 'jetty'
jettyRun {
contextPath = ''
}
धन्यवाद यह एक अच्छा विचार है, लेकिन यह बेहतर होगा अगर यह कार्यक्षमता में बनाया गया था, इसलिए मुझे यह निर्धारित करने की ज़रूरत नहीं है कि किन चीजों को बाहर करने की आवश्यकता है। मुझे विश्वास नहीं है कि आप क्या सुझाव देंगे जो काम करेगा क्योंकि दस्तावेज़ीकरण का तात्पर्य है कि यह योजक है। ग्रैडल क्लासपाथ ऐसा लगता है कि यह सवारी के लिए साथ आ सकता है। क्या कोई अच्छा कारण है कि कंटेनर लॉन्च करने के लिए जेटी प्लगइन द्वारा ग्रैडल क्लासपाथ की आवश्यकता क्यों है? –
मैंने 'SourceSet.main.compileClasspath' पर सफलतापूर्वक' - = 'का उपयोग किया है, इसलिए इसे जेटी क्लासपाथ के लिए उसी तरह काम करना चाहिए। मुझे नहीं पता कि क्यों और किस कारण से धीरे-धीरे अपने स्वयं के वर्गपथ शामिल हैं। मैनुअल बताता है कि डिफ़ॉल्ट रूप से क्लासपाथ 'project.sourceSets.main.runtimeClasspath' पर सेट है, जो आपके आवेदन का क्लासपाथ होना चाहिए और क्रमशः नहीं होना चाहिए। यदि समस्या नवीनतम ग्रेडल संस्करण के साथ बनी रहती है तो मैं केवल आपके बग रिपोर्ट को दर्ज करने का सुझाव दे सकता हूं। – rodion