मुख्य वर्ग org.gradle.wrapper.GradleWrapperMain को ढूंढ या लोड नहीं कर सका


166

मैंने स्थानीय डाइरेक्टरी जैसे ~/.gradle, ~/.m2 ~./androidऔर एंड्रॉइड स्टूडियो में ~/workspace/project/.gradleचेसिंग को हटाकर पूरी परियोजना को साफ कर दिया File -> Invalidate Caches / Restart...। अब कमांड का निष्पादन ./gradlewनिम्नलिखित आउटपुट की ओर जाता है:

usr$ ./gradlew tasks
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

कहने की जरूरत नहीं है, मैंने बहुत ज्यादा डिलीट कर दिया, सवाल यह है कि इसे फिर से कैसे रिपेयर किया जा सकता है? क्या आपके पास कोई विचार है कि इसे कैसे ठीक किया जाए?


4
आपको gradle wrapperफिर से लापता कोड को पुनः प्राप्त करने के लिए चलाने में सक्षम होना चाहिए ... यह मान रहा है कि आपके पास कोई स्रोत नियंत्रण सेटअप नहीं है।
cjstehno

क्या आपने अपने मशीन पर ग्रेडेल स्थापित किया है? आप gradlew के बजाए regular gradle को invoke करने की कोशिश कर सकते हैं, संभवतः gradle आवरण को भी पुनर्स्थापित करना चाहिए।
रा.ग.प्र। 22'15

जवाबों:


134

आपका ग्रेडल रैपर गायब, टूटा हुआ या दूषित है।

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

ग्रेडियर रैपर को रिस्टोर करना:
यह ऐसा हुआ करता था कि आपको wrapperअपने बिल्ड.ग्रेडल के लिए एक काम जोड़ने की जरूरत थी। ग्रेडियर रैपर और उसके सभी आश्रितों को बहाल करने के लिए। उदाहरण के लिए:

task wrapper(type: Wrapper) {
    gradleVersion = '4.1'
}

ग्रेडेल के नए संस्करणों को इसकी आवश्यकता नहीं है। यह अब एक अंतर्निहित कार्य है। बस दौडो:

gradle wrapper

आप संस्करणों आदि को निर्दिष्ट करने के लिए अतिरिक्त झंडे की आपूर्ति भी कर सकते हैं

gradle wrapper --gradle-version 6.2 --distribution-type all

जब आप इस कार्य को चलाते हैं, तो आपके स्रोत फ़ोल्डरों में एक जोड़र आवरण स्क्रिप्ट और आवश्यक जार फाइलें जोड़ी जाती हैं। गुण वर्गीकृत / आवरण / gradle-wrapper.properties में संग्रहीत किए जाते हैं

( brew install gradleउदाहरण के लिए मैक पर इसे चलाने के लिए आपको स्थानीय स्तर पर ग्रेडेल स्थापित करने की आवश्यकता हो सकती है । अधिक विस्तृत निर्देश यहां देखें )

यह पहले स्थान पर क्यों गायब था?
ओपी ने लगता है कि कुछ को हटा दिया है कि ग्रेडल रैपर पर निर्भर करता है।

लेकिन एक सामान्य कारण यह है कि एक .gitignore प्रविष्टि रैपर जार को गिट में जाँचने से रोकता है। ध्यान दें कि .itignore का प्रभाव स्रोत फ़ोल्डर में हो सकता है, या आपके उपयोगकर्ता के होम फ़ोल्डर में एक वैश्विक या git वैश्विक कॉन्फ़िगरेशन हो सकता है। *.jarइनका .ignignore में प्रवेश होना आम बात है ।

आप .gitignore में gradlew की जार फ़ाइलों के लिए एक अपवाद जोड़ सकते हैं

*.jar
!gradle/wrapper/gradle-wrapper.jar

या बल आवरण में जार जोड़ने के लिए मजबूर करें

git add -f gradle/wrapper/gradle-wrapper.jar

रेफरी: ग्रैडल रैपर


1
आपका बहुत बहुत धन्यवाद!
सेप्रोब्लाम

8
इस त्रुटि के लिए एक और संभावित कारण ग्रेडेल / रैपर / ग्रेडल-रैपर.जर फाइल निष्पादन योग्य नहीं है, जैसे कि यदि आपने विंडोज से फाइल कॉपी की है ...
सेंट्रिक

मेरे पास यह मामला था और आखिरकार gradlew.bat को निष्पादित कर रहा था जिसमें कोई तर्क नहीं था। पता नहीं क्यों, लेकिन एक कोशिश के काबिल।
अल्विन शोमैन

207

@ RaGe के जवाब के अलावा मैं जिस स्थिति का सामना कर सकता हूं, वह थी जहां मुझे एक वैश्विक पकड़ की अनदेखी थी जो .jarफाइलों की अनदेखी कर रही थी और इसलिए ग्रेडल रैपर जार कभी भी प्रतिबद्ध नहीं था। इस प्रकार मैं एक प्रयास के बाद जेनकिंस सर्वर पर वह त्रुटि प्राप्त कर रहा था /var/lib/jenkins/my_project/gradlew build। मुझे जार को जोड़ने के लिए स्पष्ट रूप से बाध्य करना पड़ा और फिर कमिट करना पड़ा:

git add -f gradle/wrapper/gradle-wrapper.jar

17
यह वास्तव में समस्या थी। मुझे एहसास नहीं था कि मेरे पास एक वैश्विक .gitignore है।
amey91

1
अच्छा है। मेरे साथ भी यही हुआ था।
ब्रेंडन

यह वास्तव में मेरी समस्या थी ... धन्यवाद दोस्त!
CMMJJun

GitHub क्रियाओं में CI / CD पर काम कर रहा हूँ और यह मेरे लिए था। धन्यवाद!
एंडी

43

मेरे लिए जो काम करना है वह पहले चला:

 gradle wrapper

सफल निर्माण के बाद मैं दौड़ने में सक्षम था

./gradlew assembleRelease

नोट: gradle wrapperपहले चलाने में सक्षम होने के लिए brew install gradle। यदि स्थापना सफल gradle wrapperप्रोजेक्ट रूट से चलती है।

स्रोत और धन्यवाद: http://gradle.org/docs/current/userguide/gradle_wrapper.html और https://stackoverflow.com/users/745574/rage


1
यदि यह कमांड काम नहीं करता है, तो दाईं ओर ASD ग्रेड पैनल है। क्लिक करेंGradle->ProjectName->ProjectName->Tasks->build setup->wrapper
Jemshit Iskenderov

मेरे लिए काम कर रहा है।
negrotico19

हाँ, मैं IntelliJ IDE पर स्प्रिंगबूट परियोजना पर एक ही मुद्दा था, इस सुझाव ने इस मुद्दे को हल कर दिया। साभार @niklasingvar
Ermias K

41

मेरे मामले में यह एक वैश्विक था .gitignore, जैसा कि @ हैन्का के जवाब में बताया गया है

जार को बलपूर्वक जोड़ने के बजाय, जिसे आपको प्रत्येक ग्रेडल परियोजना में करने के लिए याद रखने की आवश्यकता होगी, मैंने अपने ग्लोबल में रैपर जार को फिर से शामिल करने के लिए एक ओवरराइड जोड़ा .gitignore:

*.jar
!gradle/wrapper/gradle-wrapper.jar

यह मेरे लिए उपयोगी है क्योंकि मेरे पास कई परियोजनाएं हैं जो ग्रैडल का उपयोग करती हैं; Git अब आवरण आवरण को शामिल करने के लिए मुझे याद दिलाएगा।

यह ओवरराइड तब तक काम करेगा जब तक ऊपर की कोई निर्देशिका gradle-wrapper.jar(जैसे कि gradleऔर wrapper) को नजरअंदाज नहीं किया जाता है - प्रदर्शन कारणों से अनदेखा निर्देशिका में उतरना नहीं होगा


हाँ, मेरे मामले में भी यही समस्या है
सिल्टसूडो

22

मेरे मामले में, मैंने wrapperफ़ोल्डर की प्रतिलिपि बनाते समय उप फ़ोल्डर छोड़ दिया gradleऔर वही त्रुटि मिली।

मुख्य वर्ग org.gradle.wrapper.GradleWrapperMain को ढूंढ या लोड नहीं कर सका

सुनिश्चित करें कि आपके पास सही फ़ोल्डर संरचना है यदि आप अन्य स्थान से आवरण को कॉपी करते हैं।

├── build.gradle
├── धरातल
Pper pper आवरण
Le │ ग्रेडल-रैपर.जर
Le per gradle-wrapper.properties
W gradlew
। Gradlew.bat
Le settings.gradle

आप रैपर की नकल क्यों करेंगे? बस क्रियान्वित करने gradle wrapperसे आपको सटीक परिणाम
मिलेगा

@Xerus, कुछ कॉर्पोरेट env में नेटवर्क प्रतिबंध हैं जिन्हें आप स्वतंत्र रूप से पैकेज डाउनलोड नहीं कर सकते हैं। इस मामले में आपको कॉपी / स्थानांतरित करना होगा।
yantaq

8

आप शायद अपने प्रोजेक्ट में gradle-wrapper.jarडायरेक्टरी के तहत फाइल गायब कर रहे हैं gradle/wrapper

आपको इस फाइल को इस स्क्रिप्ट के माध्यम से build.gradle फाइल में नीचे की तरह जेनरेट करना होगा,

task wrapper(type: Wrapper) {
   gradleVersion = '2.0' // version required
}

और रन टास्क:

gradle wrapper

2.4 ग्रेड (या अधिक) के साथ आप एक समर्पित कार्य को जोड़े बिना एक आवरण स्थापित कर सकते हैं:

gradle wrapper --gradle-version 2.3

या

gradle wrapper --gradle-distribution-url https://myEnterpriseRepository:7070/gradle/distributions/gradle-2.3-bin.zip

सभी विवरण इस लिंक से मिल सकते हैं


"ग्रेडल रैपर --ग्रेड-डिस्ट्रिब्यूशन-डिस्ट्रिब्यूशन myEnterpriseRepository: 7070 / gradle / वितरण / ... " के लिए विंडोज़ 10 पर बहुत सारी त्रुटियां
प्रेम और शांति - जो कोड्सवेल

हां, समस्या gradle/wrapperडायर की सामग्री को याद कर रही है । यह आपके द्वारा gralde wrapperबताए अनुसार चलाकर किया जा सकता है ।
यूरी

यदि यह कमांड काम नहीं करता है, तो दाईं ओर ASD ग्रेड पैनल है। क्लिक करेंGradle->ProjectName->ProjectName->Tasks->build setup->wrapper
Jemshit Iskenderov

4

आप gradlew.bat को रूट फ़ोल्डर में भी कॉपी कर सकते हैं और gradlew-आवरण को gradlew फ़ोल्डर में कॉपी कर सकते हैं।

मेरे लिए वह काम है।


4

जब मैंने इसमें भाग लिया तो मैंने ऊपर से उत्तर दिए। और अगर आप इस मुद्दे को जार और प्रॉपर्टी फाइल दोनों को बल देने के लिए सुनिश्चित कर रहे हैं। इन दोनों के बाद, मुझे यह मुद्दा मिलना बंद हो गया।

git add -f gradle/wrapper/gradle-wrapper.jar
git add -f gradle/wrapper/gradle-wrapper.properties

3

मेरे मामले में (विंडोज़ 10 का उपयोग करके) gradlew.bat में कोड की निम्नलिखित पंक्तियाँ हैं:

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

APP_HOME वैरिएबल प्रोजेक्ट के लिए मूल रूप से ग्रेड फ़ोल्डर है, इसलिए, अगर यह किसी तरह से गड़बड़ हो जाता है, तो आप इसके लिए तैयार हो सकते हैं:

त्रुटि: मुख्य वर्ग org.gradle.wrapper.GradleWrapperMain को ढूंढ या लोड नहीं कर सका

मेरे लिए, यह गड़बड़ हो गया था क्योंकि मेरे प्रोजेक्ट फ़ोल्डर संरचना में एक एम्परसेंड (&) था। जैसे C: \ Test और Dev \ MyProject

इसलिए, ग्रेडेल C: \ Test के रूट फ़ोल्डर में gradle-wrapper.jar फ़ाइल को खोजने का प्रयास कर रहा था ('और' सहित सभी चीजों को अलग करना और बंद करना)

मैंने नीचे दिए गए APP_HOME =% DIRNAME% रेखा के ऊपर निम्न पंक्ति जोड़कर इसे पाया। फिर रिजल्ट देखने के लिए बैट फाइल दौड़ा दी।

echo "%APP_HOME%"

कुछ अन्य 'विशेष वर्ण' होंगे जो एक पथ / निर्देशिका को तोड़ सकते हैं।


2

मैंने वही त्रुटि देखी लेकिन मेरे मामले में यह LFS स्थापित किए बिना एक ताज़ा गिट इंस्टॉलेशन था। प्रश्न में रेपो को LFS के साथ सेट किया गया था और ग्रेडल-रैपर.जर एलएफएस में था, इसलिए इसमें केवल LFS सर्वर के लिए एक सूचक था। समाधान सरल था, बस चलाएं:

git lfs install

और एक ताजा क्लोन ने चाल चली। मुझे लगता है git lfs pullया सिर्फ git pullमदद कर सकता था लेकिन समस्या वाले व्यक्ति ने इसके बजाय एक ताजा क्लोन करने का फैसला किया।


1

@ हंक ने मेरे मामले में भी समस्या हल कर दी। मैंने अपनी खतरनाक **/*.jarउपेक्षाओं को स्वयं-व्याख्यात्मक लोगों में बदलने का फैसला किया src/**/lib/*.jar, ताकि भविष्य में ऐसी समस्याओं से बचा जा सके। ** / * से शुरू होने वाले इग्नोर कम से कम मेरे लिए बहुत खतरनाक हैं। और यह हमेशा एक अच्छा विचार है। इसे देखने के बाद एक .gitignore पंक्ति के पीछे का विचार प्राप्त करें।


1

मेरे मामले में gradle-wrapper.jar फ़ाइलों का एक गुच्छा बदलने के बाद दूषित हो गया। मूल में लौटने से समस्या हल हो गई।


1
हे @ नीक स्टैक ओवरफ्लो में आपका स्वागत है कृपया नए प्रश्न पर उत्तर दें यह प्रश्न पहले से ही 4 से अधिक उत्तर स्वीकार किए गए हैं इसलिए कृपया उस हिस्से पर ध्यान केंद्रित करें।
दिलीप

2
ज़रूर! उपर्युक्त सभी स्वीकृत जवाबों ने मेरी मदद नहीं की इसलिए मैंने जो किया उससे मुझे मदद मिली।
NeeK

1

मैंने अगले फिक्स के साथ इस समस्या को ठीक किया (शायद यह किसी की मदद करेगा):

बस जांचें कि क्या आपके प्रोजेक्ट फ़ोल्डर के मूल फ़ोल्डर में रिक्त स्थान या अन्य निषिद्ध वर्णों के नाम हैं। यदि हाँ - इसे हटा दें।

"C: \ Users \ someuser \ Test Projects \ testProj" - इस मामले पर "Test Projects" को "TestProjecter" होना चाहिए।



0

मेरे मामले में, मैंने प्रोजेक्ट से gradlew और gradle फ़ोल्डरों को हटा दिया था। Reran intellij में ग्रैडल प्रोजेक्ट विंडो से "रन ग्रेड टास्क" के माध्यम से स्वच्छ निर्माण कार्य करता है

यहां छवि विवरण दर्ज करें



0

यदि यह एक नई परियोजना है, तो मौजूदा फ़ोल्डर को हटा दें और $ npm इंस्टॉल -g प्रतिक्रिया-मूल-cli चलाएं

बिना किसी त्रुटि के जाँच करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.