java - चीड स्क्रिप्ट से ग्रैड चलाएं




ant gradle (3)

मैं ग्रेडल से चींटी स्क्रिप्ट चलाने की कोशिश कर रहा हूं, लेकिन मुझे यह अपवाद है:

  Cause: the class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask was not found.

और मैं बजाय स्थानीय लिबी से एंट-जेटिट का उपयोग करना चाहता हूं, लेकिन मुझे नहीं पता कि मैं कैसे ग्रैड में बहुत नया हूँ।

मुझे यह कोड मिला

configurations { 
  antClasspath 
} 
dependencies { 
  antClasspath 'org.apache.ant:ant-junit4:1.8.3' 
} 
ClassLoader antClassLoader = org.apache.tools.ant.Project.class.classLoader 
configurations.antClasspath.each { File f -> 
  antClassLoader.addURL(f.toURI().toURL()) 
} 

लेकिन मुझे नहीं पता कि मुझे क्या बदलना है अगर मटर पहले से ही एमटी लिब फ़ोल्डर में है। मैं मावेन रिपो का उपयोग नहीं करना चाहता


Answers

मैंने निम्नलिखित ग्रैडल त्रुटि तय की है:

Execution failed for task ':test'.
> Problem: failed to create task or type junit
  Cause: the class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask was not found.
          This looks like one of Ant's optional components.
  Action: Check that the appropriate optional JAR exists in
          -ANT_HOME/lib
          -the IDE Ant configuration dialogs

मेरी चींटी स्क्रिप्ट build.xml मेरी चींटी कार्य <junit> ठीक पहले में निम्नलिखित पंक्तियाँ जोड़कर

<taskdef name="junit"
  classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
  classpath="/usr/share/ant/lib/ant-junit.jar:/usr/share/ant/lib/ant-junit4.jar"
/>

यह पूर्ण चींटी लक्ष्य test :

<target name="test" depends="test_compile">
  <mkdir dir="${test.report.dir}" />

  <!-- Required for Gradle -->
  <taskdef name="junit"
  classname="org.apache.tools.ant.taskdefs.optional.junit.JUnitTask"
  classpath="/usr/share/ant/lib/ant-junit.jar:/usr/share/ant/lib/ant-junit4.jar"
  />

  <junit printsummary="yes" fork="true" haltonfailure="on">
      <classpath refid="classpath_test"/>
      <batchtest>
          <fileset dir="${test.src.dir}">
              <include name="**/*Tester.java" />
          </fileset>
      </batchtest>
  </junit>
</target>

के बारे में जवाब "JUnitTask नहीं मिला" oers से मेरे ऊपर तय करने के लिए एक उपयोगी मदद मिली है

इस मुद्दे की पहचान करें

इस मुद्दे को समझने के लिए, मैंने स्क्रिप्ट को build.xml और build.gradle को चींटी और ग्रेडल आउटपुट की तुलना करने के लिए build.gradle किया है। "ग्रेडेल" प्राप्त करने के तरीके का भी "एंटी" के समान आकृति का विवरण देखें। कुछ विवरण के लिए

दिलचस्प -classpath पैरामीटर में है:

चींटी का इस्तेमाल करना

/some/path/myApplication.jar
/usr/share/java/ant-launcher-1.9.7.jar
/usr/share/ant/lib/ant.jar
/usr/share/ant/lib/junit.jar
/usr/share/ant/lib/ant-junit.jar
/usr/share/ant/lib/ant-junit4.jar

ग्रेडल का उपयोग करना

/some/path/myApplication.jar
/usr/lib/gradle/3.2.1/lib/ant-launcher-1.9.6.jar
/usr/lib/gradle/3.2.1/lib/ant-1.9.6.jar

अंतर

हम देख सकते हैं कि ant-launcher-1.9.6.jar अपनी ant-launcher-1.9.6.jar और ant-1.9.6.jar ant-launcher-1.9.6.jar का उपयोग करता है। लेकिन Gradle JARs को चींटी स्थापना से उपयोग नहीं करता ( /usr/share/ant/lib/*jar /usr/share/java/*jar लिए प्रतीकात्मक लिंक हैं)।

दीर्घावधि

एंट जेयूनेट टास्कडेफ के एकीकरण के बारे में इस चर्चा में , ल्यूक डेलि ने नवंबर 2013 में पुष्टि की;

Gradle अपनी 'उदाहरण' चींटी का उपयोग करता है और $ANT_HOME पर इंस्टॉल की गई चीज़ों का उपयोग करने में परेशान नहीं करता है

जेनेट 5 एरिक वेंडेलिन के बारे में इस चर्चा में ग्रेडल कोर के भीतर अधिक जेयूनेट को एकीकृत करने की प्राथमिकता व्यक्त की गई।

इससे पहले, दीर्घकालिक समाधान के लिए जेयूनिट को चींटी स्क्रिप्ट से बंद करना और उन्हें ग्रैडल सिंटैक्स में परिवर्तित करना है।


यह सिर्फ टिप्पणी से repost है, जो मेरी समस्या का हल: ओपल के लिए धन्यवाद

बिना शुद्ध कनेक्शन के चलते, बहुत अच्छा विचार नहीं हो सकता है फिर भी अगर आपके पास स्थानीय निर्देशिका में जार है, तो फ़ाइल निर्भरता का उपयोग करके केवल स्क्रिप्ट निर्भरता आईडी दर्ज करें। देखें: ओपल से http://www.gradle.org/docs/current/userguide/dependency_management.html#file- निर्भरता


ग्रैडल एक प्रकार का निर्माण उपकरण है जो प्रोग्राम के स्रोत कोड बनाता है। तो यह एंड्रॉइड स्टूडियो का एक महत्वपूर्ण हिस्सा है, और आपके आवेदन को विकसित करने से पहले स्थापित होना आवश्यक है।

हमें इसे अलग से स्थापित करने की ज़रूरत नहीं है, क्योंकि एंड्रॉइड स्टूडियो हमारे लिए यह करता है, जब हम अपनी पहली परियोजना बनाते हैं।







java ant gradle