2011-02-07 17 views
5

में मिला है मुझे कुछ संकलित कक्षाएं जिन्हें मुझे किसी प्रोजेक्ट में जोड़ने की आवश्यकता है।संकलित जावा क्लास को एक मेवेन प्रोजेक्ट

एक समाधान जो मैं सोच सकता हूं, इन फ़ाइलों के साथ एक जार बनाना और मैन्युअल रूप से इसे भंडार में अपलोड करना है। जाहिर है यह काम करेगा। लेकिन मुझे आश्चर्य है कि क्या एक और अधिक सुरुचिपूर्ण समाधान है। क्या मैं उन्हें परियोजना संरचना के तहत किसी भी तरह से रख सकता हूं? इसलिए फाइलों को स्रोत नियंत्रण में चेक-इन किया जाएगा और उनके संस्करणों को बनाए रखना आसान होगा।

+1

पहले स्थान पर अनपेक्षित संकलित कक्षाओं को वितरित करने के बारे में कुछ भी सुरुचिपूर्ण नहीं है, मुझे डर है। –

+0

जैसा कि बोरिस ने निहित किया है, स्रोत नियंत्रण भंडार में बाइनरी क्लास फ़ाइलों को संग्रहीत करना एक बुरा विचार है। – crowne

+0

@ सेन: मैं सहमत हूं, लेकिन यह दी गई स्थिति है, मेरे लिए काफी नया मुझे स्वीकार करना होगा, लेकिन वर्तमान में इसके बारे में कुछ भी नहीं है। – Tarlog

उत्तर

8

यहाँ बोरिस 'जवाब पर टिप्पणी प्रति के रूप में मेरे दृष्टिकोण है (अपने आप को एक ही कल के प्रयोग की आवश्यकता है, लेकिन पाने के बाद मैं इस्तेमाल किया था जवाब के लिए लिंक को खोजने में असमर्थ):

अपनी परियोजना निर्देशिका में, repo नामक फ़ोल्डर बनाएं, जिसे हम फ़ोल्डर आधारित मेवेन रिपोजिटरी के रूप में उपयोग करेंगे।

<repositories> 
    <repository> 
     <id>file.repo</id> 
     <url>file://${project.basedir}/repo</url> 
    </repository> 
</repositories> 

पैकेज एक जार के रूप में अपनी कक्षाओं फ़ाइल भंडार करने के लिए, निम्न आदेश के साथ, और उन्हें तैनात: इस के बाद

mvn deploy:deploy-file 
-Durl=file:///absolute/path/to/your-project/repo \ 
-DrepositoryId=file.repo \ 
-Dfile=path-to-your.jar \ 
-DgroupId=some.external.project.group \ 
-DartifactId=the-artifact-name \ 
-Dversion=1.0 \ 
-Dpackaging=jar; 

निम्न फ़ाइल भंडार अपनी परियोजना pom.xml में जोड़े आप समूह प्रोजेक्ट pom.xml में जार पर सामान्य निर्भरता जोड़ सकते हैं, समूह आईडी, आर्टिफैक्टआईडी और संस्करण जो आपने ऊपर पारित किया है, के मानों का उपयोग करके। फिर आप एसवीएन में रेपो फ़ोल्डर जोड़ सकते हैं, और अपने pom.xml में परिवर्तन कर सकते हैं। आपके प्रोजेक्ट की जांच करने वाला कोई भी डेवलपर अब बिना किसी प्रयास के समान निर्भरता का उपयोग करने में सक्षम होगा।

2

पहला विचार उन तरीकों से बेहतर है जब आप पर नियंत्रण नहीं है। तो, एक जार में बंडल बिनरी, संस्करण इसे और भंडार पर तैनात करें।

+5

और यदि आप उन लोगों के साथ मिलकर काम कर रहे हैं जिनके साथ आप एक संग्रह साझा नहीं कर रहे हैं, और इसलिए आप अपने एससीएम पर निर्भरता जोड़ना चाहते हैं: परियोजना-रूट के तहत फ़ाइल-रिपॉजिटरी बनाने पर विचार करें, अपनी पैक की निर्भरता को उस पर तैनात करें भंडार, अपने प्रोजेक्ट पीओएम में फ़ाइल भंडार का संदर्भ लें और संशोधन को संशोधित करने के लिए भंडार जोड़ें। – Tim

+0

@ अपनी टिप्पणी के लिए एक अतिरिक्त उत्तर होने का हकदार है। –

+0

ठीक है, मैं आपसे पूरी तरह से सहमत नहीं हो सकता। स्रोत नियंत्रण में मेरे पास क्या हो रहा है पर अधिक नियंत्रण है। – Tarlog

संबंधित मुद्दे