हमारे पास कई मेवेन प्रोजेक्ट हैं, जो बिल्ड सर्वर पर बनाए गए हैं। कुछ मामलों में हम अपने डिलिवरेबल्स पर हस्ताक्षर करना चाहते हैं। हम ऐसा करने के लिए Maven Jarsigner Plugin का उपयोग करते हैं।मेवेन प्रोजेक्ट्स में जार साइनिंग रणनीति
हम निम्नलिखित सवालों का सामना:
- हम कहाँ हस्ताक्षर करने के लिए पासवर्ड संग्रहीत करना चाहिए?
- मेवेन परियोजनाओं पर हस्ताक्षर करने के लिए एक अच्छी रणनीति क्या है?
हम अपने कीस्टोर को कहीं भी हमारे सर्वर पर नहीं रखना चाहते हैं और इसके लिए पथ को हार्डकोड नहीं करना चाहते हैं। तो हमने बस इस कीस्टोर को एक जार में लपेट लिया और इसे हमारे आंतरिक मैवेन रिपोजिटरी के लिए एक आर्टिफैक्ट के रूप में अपलोड किया। जब हम एक मेवेन प्रोजेक्ट पर हस्ताक्षर करना चाहते हैं, तो हम Maven Dependency Plugin का उपयोग करके कीस्टोर आर्टिफैक्ट डाउनलोड करते हैं और मेवेन बिल्ड लाइफसाइकिल पर हस्ताक्षर लक्ष्य संलग्न करते हैं। Here अधिक विस्तृत जानकारी है।
कीस्टोर के लिए पासवर्ड छिपाने के लिए, हम उन्हें हमारे कॉर्पोरेट pom.xml
फ़ाइल में डाल देते हैं। हम बिल्ड सर्वर पर settings.xml
में पासवर्ड संग्रहीत करने के बारे में भी सोचते हैं।
जब कोई डेवलपर मशीन पर कोई प्रोजेक्ट बनाया और हस्ताक्षरित होता है, तो हम इसे स्वयं-हस्ताक्षरित प्रमाणपत्र के साथ साइन करते हैं। लेकिन जब एक बिल्ड सर्वर पर प्रोजेक्ट बनाया और हस्ताक्षरित किया जाता है, तो हम इसे अपने "आधिकारिक" प्रमाण पत्र के साथ साइन करते हैं।
क्या यह एक अच्छी रणनीति है?
हम वैसे ही गए। सिवाय इसके कि उत्पादन कीस्टोर पासवर्ड प्रोफाइल सेटिंग्स.एक्सएमएल में संग्रहीत हैं। और वह प्रोफ़ाइल स्वचालित रूप से बिल्ड सर्वर द्वारा लागू की जाती है। –
यह भी ध्यान दें, आपके उपनाम में इस बग के कारण एकल-उद्धरण वर्ण नहीं हो सकता है: http://jira.codehaus.org/browse/MJARSIGNER-11 –
संस्करण 1.3 के अनुसार, जार साइनर प्लगइन मैवेन एन्क्रिप्शन का समर्थन करता है। यह सेटिंग्स.xml में पासवर्ड स्टोर करने के लिए अपेक्षाकृत सुरक्षित बनाता है। विवरण के लिए http://maven.apache.org/guides/mini/guide-encryption.html देखें। – Rob