मैं Travis-CI उपयोग कर रहा हूँ निरंतर एकीकरण प्रदान करने के लिए कुछ जावा ओपन सोर्स प्रोजेक्ट मैं पर काम कर रहा हूँ के लिए बनाता है बनाता है।Maven आधारित सतत एकीकरण के लिए दबा GPG हस्ताक्षर करने (ट्रैविस सीआई)
आम तौर पर यह सुचारू रूप से काम करता है, लेकिन मैं जब पोम GPG हस्ताक्षर करने, उदा निर्दिष्ट करता है एक समस्या है
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
इस कारण ट्रैविस विफल निर्माण - जाहिरा तौर पर, क्योंकि यह एक पदबंध उपलब्ध नहीं है, जबकि mvn install
चल रहा है। एक उदाहरण के लिए this build देखें।
सीआई परीक्षण निर्माण के लिए जीपीजी हस्ताक्षर छोड़ने के लिए मेवेन और/या ट्रेविस को कॉन्फ़िगर करने का सबसे अच्छा तरीका क्या है, लेकिन जब भी मैं उचित रिलीज बिल्ड करता हूं तो GPG हस्ताक्षर निष्पादित करता हूं?
मान लीजिए कि आप रिलीज प्लगइन का उपयोग कर रहे हैं: ध्वज के माध्यम से सक्रियण का उपयोग करने के बजाय आप उस प्रोफ़ाइल को 'रिलीजप्रोफाइल' प्लगइन सेटिंग में जोड़ सकते हैं। – ankon
वैकल्पिक रूप से आप 'सत्य' के मान के साथ सक्रियण संपत्ति का नाम '$ {env.TRAVIS}' बना सकते हैं। ऐसा इसलिए है क्योंकि ट्रैविस-सीआई कंटेनर विभिन्न अंतर्निहित पर्यावरणीय चर के साथ स्पंज-अप होते हैं (उदाहरण के लिए 'ट्रैविस = सत्य' और 'सीआई = सच्चाई') और मैवेन पर्यावरण चर के लिए मेवेन सिंटैक्स के माध्यम से उन्हें पहचान सकते हैं '$ {env ।} '। इस दृष्टिकोण से आपको हर मेवेन कमांड में सिस्टम प्रॉपर्टी जोड़ने की आवश्यकता नहीं है, लेकिन फिर भी आप प्रोफ़ाइल के सक्रियण की नकल करने की अनुमति देते हैं और सीआई बिल्ड के दौरान प्रोफ़ाइल के स्वचालित सक्रियण की अनुमति देते हैं। –