gradlew
स्क्रिप्ट को ट्रेविस सीआई में एक ग्रैडल प्रोजेक्ट बनाने के लिए अनिवार्य नहीं है।
शायद सबसे अच्छा विकल्प एक ग्रेन रैपर स्थापित करने के लिए पूर्व-स्थापित ग्रेड का उपयोग करना है।
apply plugin: 'java'
check.doFirst {
println "Running gradle v${project.gradle.gradleVersion}"
}
task wrapper(type: Wrapper) {
gradleVersion = '3.4.1'
}
आप मानक ट्रैविस वर्णनकर्ता के साथ इस बिल्ड फ़ाइल का उपयोग करते हैं, यह काम नहीं करेगा: यह कैसे एक सरल build.gradle
लग रहा है की तरह है। यह आपके निर्माण को चलाने के लिए बस gradle
का उपयोग करेगा। लेकिन अगर आप वर्णनकर्ता के आवरण कार्य जोड़ने अगर:
language: java
jdk:
- oraclejdk8
before_install:
gradle wrapper
ट्रैविस सही ढंग से पहली आवरण काम चलेगा और उसके बाद पता लगा कि gradlew
मौजूद है और अपने निर्माण को चलाने के लिए इसका इस्तेमाल करते हैं।
हालांकि इस दृष्टिकोण के पास एक नुकसान है जो आपके निर्माण को तोड़ सकता है। यदि आप ग्रैडल में कुछ विशेषताओं का उपयोग करते हैं जिन्हें पूर्व-स्थापित ग्रैडल संस्करण के बाद कार्यान्वित किया गया था, तो gradle wrapper
चरण विफल हो जाएगा। ऐसी सुविधा का उदाहरण एस 3 मेवेन रिपोजिटरी है, जिसे मैं मानता हूं v2.4 में पेश किया गया था।
इसे रोकने के लिए, आप एक अलग निर्माण फाइल करने के लिए आवरण कार्य स्थानांतरित कर सकते हैं, मान लीजिए कि wrapper.gradle
करते हैं:
task wrapper(type: Wrapper) {
gradleVersion = '3.4.1'
}
और करने के लिए .travis.yml
फ़ाइल बदलने के लिए:
language: java
jdk:
- oraclejdk8
before_install:
gradle -b wrapper.gradle wrapper
यह करना चाहिए। यह सेटअप आपकी मुख्य बिल्ड स्क्रिप्ट को बदले बिना रैपर इंस्टॉल करने के लिए पूर्व-स्थापित ग्राडल का उपयोग करता है।
आप example build here और this is the whole GitHub repository देख सकते हैं।
नोट: एक और तरीका है। आप डाउनलोड करने योग्य वितरण से आवश्यक ग्रैडल संस्करण स्थापित करने या शायद डेबियन पैकेज सिस्टम का उपयोग करने के लिए before_install
चरण का उपयोग कर सकते हैं। हालांकि उसे sudo
विशेषाधिकारों की आवश्यकता होगी। ऐसी वर्चुअल मशीनों को शुरू करने में लंबा समय लगता है (लगभग 30s?)।
एक और बात, मैंने gradlew
स्क्रिप्ट को प्रतिबद्ध करते हुए एक अन्य उत्तर पर टिप्पणी में इसका उल्लेख किया है, आपको रैपर जार और गुणों की भी आवश्यकता है। जार एक बाइनरी फ़ाइल है और इसे संस्करण नियंत्रण में डालने को कभी-कभी विवादास्पद माना जाता है। तो यदि आप ऊपर वर्णित समाधान का उपयोग करते हैं, तो आप gradle
फ़ोल्डर को भी छोड़ सकते हैं।
यह सलाह दी जाती है कि https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:wrapper_generation – petey
पता नहीं है कि यह एकमात्र तरीका है, लेकिन यह तरीका है कि मेरा खुद का रेपो सेट है अप। –
एक दोस्त ने मुझे बताया कि यदि आप अपने सिस्टम और एक सिस्टम चर पर स्थापित है तो इसे चलाने के लिए संभव हो सकता है। लेकिन मुझे नहीं लगता कि यह विभिन्न ग्रेडल संस्करणों के साथ परियोजनाओं के लिए काम करेगा ... – Mauker