अभी तक हमारे पास src
नामक एकल स्रोत फ़ोल्डर के साथ एक प्रोजेक्ट संरचना है, जिसमें तीन मॉड्यूल के लिए स्रोत कोड शामिल है। मैं क्या करना चाहता हूं:एकल स्रोत फ़ोल्डर से कई जार ग्रैडल करें
1) संकलित स्रोत कोड। यह आसानी से स्रोतसेट परिभाषा के साथ किया जाता है:
sourceSets {
main {
java {
srcDir 'src'
}
}
}
2) संकलन के परिणाम तीन जार में रखें। अब तीन अलग-अलग कार्यों के माध्यम से
मैं यह कर रहा हूं: मैं तीन 'जार' प्रकार कार्यों के माध्यम से यह कर रहा हूं
util.jar
task utilJar(type: Jar) { from(sourceSets.main.output) { include "my/util/package/**" } }
client.jar
task clientJar(type: Jar) { from(sourceSets.main.output) { include "my/client/package/**" } }
server.jar
task serverJar(type: Jar) { from(sourceSets.main.output) { include "**" } excludes.addAll(utilJar.includes) excludes.addAll(clientJar.includes) }
बात यह है कि server.jar
कि client.jar
और util.jar
के भीतर समाहित नहीं कर रहे हैं सभी वर्गों को शामिल करना चाहिए है। चींटी निर्माण स्क्रिप्ट में हम difference
चींटी कार्य का उपयोग कर इस समस्या को हल करते हैं। यह कैसे क्रम में किया जा सकता है (मेरा वर्तमान दृष्टिकोण काम नहीं करता है)?
शायद मेरा दृष्टिकोण पूरी तरह से गलत है। कृपया सलाह दें।
पीएस अभी के लिए हम परियोजना स्रोत कोड फ़ोल्डर संरचना नहीं बदल सकते हैं।
यह बहुत अच्छा है, लेकिन आप अन्य परियोजनाओं से अलग '.jar' फ़ाइलों को कैसे संदर्भित करते हैं - उदा। आप 'client.jar' में किसी अन्य उपप्रोजेक्ट में कैसे खींच सकते हैं? – z0r
@ z0r हम बस भंडार में कलाकृतियों को प्रकाशित कर रहे हैं और फिर उन्हें उपप्रोजेक्ट्स में निर्भरता के रूप में उपयोग कर रहे हैं। पीएस प्रतिक्रिया में देरी के लिए खेद है। – vitalidze