मैं चाहता हूं कि जार स्रोत नियंत्रण में एक 3rdparty lib में होना चाहिए, और pom.xml फ़ाइल से संबंधित पथ द्वारा इसे लिंक करना चाहिए।
आप वास्तव में इस चाहते हैं (समझते हैं अगर आप एक कंपनी के भंडार का उपयोग नहीं कर सकते हैं), तो मेरी सलाह एक "फ़ाइल भंडार" परियोजना के लिए स्थानीय और करने के लिए उपयोग करने के लिए किया जाएगा का उपयोग नहीं एक system
दायरे वाले निर्भरता। system
दायरे वाले से बचा जाना चाहिए, इस तरह निर्भरता कई स्थिति में अच्छी तरह से काम नहीं करते (जैसे विधानसभा में), वे लाभ की तुलना में अधिक परेशानियों का कारण है।
इसलिए, परियोजना के लिए एक स्थानीय भंडार की घोषणा करें:
<repositories>
<repository>
<id>my-local-repo</id>
<url>file://${project.basedir}/my-repo</url>
</repository>
</repositories>
पैरामीटर के install:install-file
साथ प्रयोग करके अपने तीसरे पक्ष के काम को वहां स्थापित करें localRepositoryPath
:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
अद्यतन: ऐसा लगता है कि प्लगइन के संस्करण 2.2 का उपयोग करते समय install:install-file
उपेक्षा करता है localRepositoryPath
। हालाँकि, यह संस्करण 2.3 और बाद में प्लगइन के साथ काम करता है। तो संस्करण को निर्दिष्ट करने के लिए प्लगइन के पूरी तरह से योग्य नाम का उपयोग करें:
mvn org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file \
-Dfile=<path-to-file> -DgroupId=<myGroup> \
-DartifactId=<myArtifactId> -Dversion=<myVersion> \
-Dpackaging=<myPackaging> -DlocalRepositoryPath=<path>
मावेन-इंस्टॉल-प्लगइन प्रलेखन
अंत में, इसे किसी अन्य निर्भरता की तरह घोषित करें (लेकिन system
गुंजाइश के बिना ):
<dependency>
<groupId>your.group.id</groupId>
<artifactId>3rdparty</artifactId>
<version>X.Y.Z</version>
</dependency>
यह IMHO एक system
स्कोप का उपयोग करने से बेहतर उपाय है क्योंकि आपकी निर्भरता को एक अच्छे नागरिक की तरह माना जाएगा (जैसे कि इसे असेंबली में शामिल किया जाएगा और इसी तरह)।
अब, मुझे यह उल्लेख करना है कि कॉर्पोरेट वातावरण में इस स्थिति से निपटने के लिए "सही तरीका" (शायद यहां मामला नहीं है) कॉर्पोरेट रिपॉजिटरी का उपयोग करना होगा।
localRepositoryPath
...