मैं एक परियोजना है कि एक जार फ़ाइल अपने प्रोजेक्ट के WEB-INF/lib
निर्देशिका में शामिल निर्दिष्ट करने के लिए "प्रणाली" गुंजाइश का उपयोग करता है। यह आर्टिफैक्ट किसी भी मेवेन रिपॉजिटरीज़ में नहीं है, इसलिए मुझे इसे अपनी परियोजना के हिस्से के रूप में शामिल करना होगा। मैं निम्नलिखित के साथ ऐसा करता हूं:मेवेन निष्पादन प्लगइन- "सिस्टम" क्लासपाथ कैसे शामिल करें?
<dependency>
<groupId>com.example</groupId>
<artifactId>MySpecialLib</artifactId>
<version>1.2</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/MySpecialLib-1.2.jar</systemPath>
</dependency>
यह ज्यादातर चीजों के लिए बहुत अच्छा काम करता है।
लेकिन अब मैं (, मेरे webapp के बाहर एक main()
विधि मैं जोड़ लिया है के माध्यम से) कमांड लाइन पर कुछ कोड को चलाने के लिए कोशिश कर रहा हूँ और क्योंकि यह "क्रम" में शामिल नहीं किया mvn exec:java
MySpecialLib में कोड को हल नहीं कर सकते classpath।
मैं कैसे या तो कर सकते हैं:
क्रम classpath को- ऐड MySpecialLib
या
mvn exec:java
बता भीsystem
classpath उपयोग करने के लिए?
मैंने mvn exec:java -Dexec.classpathScope=system
की कोशिश की है, लेकिन यह runtime
पर मौजूद सभी चीज़ों को छोड़ देता है।
अपने स्थानीय रेपो में जोड़ने के साथ समस्या यह है कि यह दृष्टि से बाहर और दिमाग से बाहर है - यह भूलना आसान है कि यह कुछ कस्टम है जिसे आपने अपने निर्माण में जोड़ा है, और खोना आसान है। आपकी टीम के अन्य देवताओं को भी उसी मैन्युअल इंस्टॉल करने का निर्देश दिया जाना चाहिए। नेक्सस एक सरल समस्या होने के लिए समाधान का एक विशाल हथौड़ा है - आपके निर्माण के लिए एक अनुकूलित आर्टिफैक्ट जोड़ना। हालांकि मैं आपको चोट की दुनिया पर सहमत हूं। :-) –
मैंने मेकफ़ाइल लिखी हैं जो स्थानीय रेपो में इसे अविस्मरणीय बनाने के लिए इंस्टॉल करते हैं। इसके अलावा, नि: शुल्क नेक्सस एक छोटा हथौड़ा है जो मेरे विचार में उपयोगी सुविधाओं का भरपूर धन प्रदान करता है। – bmargulies