से कुछ जार छोड़ कैसे मैं एक युद्ध कल्पना है कि इस तरह दिखता है के साथ एक subproject है। टोमकैट को तैनात करने योग्य एक एकल, वसा युद्ध फ़ाइल बनाता है। समस्या यह है कि, जब टॉमईई और जेबॉस को तैनात किया जाता है, तो मैं संघर्ष में चला जाता हूं (यानी जैवक्स सर्वलेट, जर्सी, आदि के साथ)। तो मैं जार के एक सेट को युद्ध से बाहर करना चाहता हूं। मैंने ग्रैडल युद्ध प्रलेखन को देखा, और ऐसा लगता है कि मुझे इसके लिए बहिष्कार का उपयोग करने की आवश्यकता है। मैं इसे दो अलग अलग तरीकों की कोशिश की, और जार युद्ध से बाहर रखा नहीं कर रहे हैं:Gradle> वेब-INF/lib
war {
// copy properties file in classes so that
// they may be loaded from classpath
from('resources') {
include '*.properties'
into 'WEB-INF/classes/'
}
// specify web xml
webXml = file('src/main/webapp/WEB-INF/web.xml')
// remove jars that conflict with TomEE
exclude '**/javax.inject-1.jar'
exclude '**/javax.servlet-2.5.0.v201103041518.jar'
exclude '**/servlet-api-2.5.jar'
exclude '**/validation-api-1.0.0.GA.jar'
}
यह एक subproject (karyon-उदाहरण) GitHub पर होस्ट NetFlix/karyon परियोजना के भीतर ही है। subproject में निर्भरता इस तरह दिखेगा:
dependencies {
compile 'org.slf4j:slf4j-api:1.7.0'
runtime 'org.slf4j:slf4j-simple:1.7.0'
compile project(':karyon-extensions')
compile project(':karyon-admin-web')
}
और मैं क्रम निर्भरता बनाम संकलन, विशेष रूप से अन्य फ़ाइलों और subprojects में तरह संपादन चीजों से बचना चाहते हैं। वास्तव में जार मैं जेटी और नियमित टोमकैट के साथ चलते समय ऊपर से बाहर निकलने की कोशिश कर रहा हूं।
मैं बस निर्माण स्क्रिप्ट को जटिल किए बिना इन जारों को बाहर करना चाहता हूं। मैं क्या खो रहा हूँ?
धन्यवाद
@rob - 'providedRuntime' शायद जाने के लिए रास्ता है। इसका मतलब है कि पुस्तकालय युद्ध फ़ाइल में नहीं जोड़ा जाएगा। आप 'बहिष्कृत' का उपयोग करने में सक्षम हो सकते हैं लेकिन दुर्भाग्यवश यह अनियंत्रित है और इसे बिल्कुल ठीक करने पर बहुत भ्रमित है। – david