java - जावा के माध्यम से एएनटी प्रोग्रामिंग चलाना




ant metrics (2)

मुझे एक आवश्यकता है जहां मुझे मेट्रिक्स प्लगइन के माध्यम से विभिन्न जावा प्रोजेक्ट्स (एक्लिप्स में कॉन्फ़िगर किया गया) से मैट्रिक्स निकालना होगा। मैं एएनटी बिल्ड स्क्रिप्ट का उपयोग करके इस प्रक्रिया को स्वचालित करने का प्रयास कर रहा हूं।

मैंने एक जावा उपयोगिता परियोजना बनाई है जो कि:

  1. इन बिल्ड फ़ाइलों को बनाएं
  2. उन्हें एक्लेप्से में कॉन्फ़िगर किए गए संबंधित जावा प्रोजेक्ट में रखें
  3. उन्हें निष्पादित करने का प्रयास।

जबकि build.xml ठीक से चल रहा है, जब मैं उन्हें प्रोग्राम प्रोग्राम चलाने की कोशिश करता हूं, तो मुझे निम्न त्रुटि मिलती है:

Exception in thread "main" ProjectHelper.parse() must be implemented in a helper plugin org.apache.tools.ant.ProjectHelper
at org.apache.tools.ant.ProjectHelper.parse(ProjectHelper.java:277)
at com.metrics.generator.MetricsGenerator.runAntScripts(MetricsGenerator.java:69)
at com.metrics.generator.MetricsGenerator.doAutomate(MetricsGenerator.java:43)
at com.metrics.generator.MetricsGenerator.main(MetricsGenerator.java:30)

मैं मान रहा हूं कि पार्स () विधि सही तरीके से काम नहीं कर रही है, लेकिन मुझे समझ में नहीं आता कि क्यों मैन्युअल रूप से build.xml चल रहा है (जिसका अर्थ है कि XML फ़ाइल को सही तरीके से बनाया गया है)। इस बिल्ड को चलाने के लिए मुझे ग्रहण करने के लिए एकमात्र संशोधन करना था कि भागो> बाहरी उपकरण> बाहरी उपकरण कॉन्फ़िगरेशन> जेआरई पर जाना था और "कार्यक्षेत्र के समान ही जीआरई में भागो" का चयन करें

निर्माण फ़ाइल इस प्रकार है:

<project basedir="." default="init" name="projectName">
    <target name="init">
        <tstamp/>
    </target>

    <target depends="init" name="build">
        <eclipse.refreshLocal depth="infinite" resource="projectName"/>
        <metrics.enable projectName="projectName"/>
        <eclipse.build BuildType="full" ProjectName="projectName" errorFormat="xml" errorOut="errors.xml" failOnError="true"/>
        <metrics.export file="outputFile" projectName="projectName"/>
        </target>
</project>

नोट: [projectName] और [ouputFile] वर्तमान में उनके निर्माण के समय प्रदान किए गए हैं, मैंने उन्हें इस पोस्ट से छोड़ा है। एफवाईआई, मैं एक्लिप्स इंडिगो का उपयोग कर रहा हूँ यह कोड जहां विफल रहता है, इस प्रकार दिखता है:

private void runAntScripts(File[] projectFolders){
    BuildLogger logger = new DefaultLogger();
    logger.setOutputPrintStream(System.out);
    logger.setErrorPrintStream(System.out);
    logger.setMessageOutputLevel(Project.MSG_INFO);

    Project metricsProject  = new Project();
    metricsProject.addBuildListener(logger);

    ProjectHelper helper = new ProjectHelper();
    metricsProject.addReference("ant.projectHelper", helper);

    File buildFile;

    int totalFolders = projectFolders.length;
    for(int index = 0; index < totalFolders; index++){

        buildFile = new File(projectFolders[index], buildXMLFileName);

        if(buildFile.isFile()){
            helper.parse(metricsProject, buildFile);
            metricsProject.setProperty("ant.file", buildFile.getAbsolutePath());

            metricsProject.init();
            metricsProject.setBaseDir(projectFolders[index]);
            metricsProject.executeTarget("build");
        }
    }
}

Answers

एक समस्या शायद आप जिस तरह से एक ProjectHelper उदाहरण मिल रही है प्रयत्न:

ProjectHelper helper = ProjectHelper.getProjectHelper();

यह भी ऐसा प्रतीत नहीं होता है कि आप संदर्भ जोड़ने और एक संपत्ति को स्थापित करने के बाद Project.init() को बुला रहे हैं। यह प्रत्येक बिल्ड फ़ाइल के लिए सिर्फ एक नया प्रोजेक्ट तैयार करने के लिए क्लीनर हो सकता है, और addReference और addReference कॉल करने से पहले init को कॉल कर addReference


इस लिंक से :

  1. ग्रहण खोलें, फ़ाइल > नई > परियोजना का चयन करें
  2. मौजूदा चींटी बिल्ड फ़ाइल से " जावा प्रोजेक्ट " का चयन करें
  3. अपनी बिल्ड फ़ाइल दिखाएं और एक प्रोजेक्ट नाम लिखें




java ant metrics