2013-08-21 9 views
5

ग्रेडल करने के लिए कौन सी स्रोतसेट निर्देशिका निर्देशिका 1.6 लिनक्स।ग्रैडल पीएमडी चेकस्टाइल Findbugs - जावा बिल्ड

जावा निर्माण परियोजना संरचना

  • Project_or_Module
    • src/जावा (शामिल जावा स्रोत कोड)
    • परीक्षण/जावा (JUnit परीक्षण शामिल हैं - इकाई परीक्षण)
    • src/जावा परीक्षण (एकीकरण परीक्षण शामिल हैं)
    • आदि/आदि (अन्य .. .. परियोजना के तहत फ़ोल्डर्स)

मैं निम्नलिखित वैश्विक विन्यास/build.gradle फ़ाइल है:

apply plugin: 'java' 
    apply plugin: 'pmd' 
    apply plugin: 'findbugs' 
    apply plugin: 'checkstyle' 
    apply plugin: 'code-quality' 
    apply plugin: 'jacoco' 

    tasks.withType(Compile) { 
    options.debug = true 
    options.compilerArgs = ["-g"] 
    } 

    checkstyle { 
     configFile = new File(rootDir, "config/checkstyle.xml") 
     ignoreFailures = true 
    } 


    findbugs { 
     ignoreFailures = true 
    } 

    pmd { 
     ruleSets = ["basic", "braces", "design"] 
     ignoreFailures = true 
    } 

    jacoco { 
     toolVersion = "0.6.2.201302030002" 
     reportsDir = file("$buildDir/customJacocoReportDir") 
    } 

    sourceSets { 
     main { 
     java { 
      srcDir 'src/java' 
     } 
     } 
     test { 
     java { 
      srcDir 'test/java' 
     } 
     } 
     integrationTest { 
     java { 
      srcDir 'src/java-test' 
     } 
     } 
    } 

    test { 
     jacoco { 
      append = false 
      destinationFile = file("$buildDir/jacoco/jacocoTest.exec") 
      classDumpFile = file("$buildDir/jacoco/classpathdumps") 
     } 
    } 

    jacocoTestReport { 
     group = "Reporting" 
     description = "Generate Jacoco coverage reports after running tests." 
     reports { 
       xml{ 
        enabled true 
        destination "${buildDir}/reports/jacoco/jacoco.xml" 
       } 
       csv.enabled false 
       html{ 
        enabled true 
        destination "${buildDir}/jacocoHtml" 
       } 
     } 
     additionalSourceDirs = files(sourceSets.main.allJava.srcDirs) 
    } 

परियोजनाओं के कुछ के लिए, सब कुछ ठीक काम करता है। यानी जब मैं "ग्रेडल क्लीन बिल्ड" या "ग्रेडल क्लीन बिल्ड जैकोकोटेस्टपोर्ट" चलाता हूं, तो सब कुछ सफल होता है।

कुछ अन्य परियोजनाओं के लिए, मुझे निम्नलिखित समस्याएं दिखाई दे रही हैं और सहायता चाहिए।

1) "ग्रेडल क्लीन बिल्ड" कमांड काम करता है अगर मैं किसी प्रोजेक्ट के लिए निम्न पंक्तियों को हटा/टिप्पणी करता हूं। लेकिन जब उन पंक्तियों को ऊपर दिखाए गए कोड स्नैपशॉट की तरह असम्बद्ध किया जाता है, तो मुझे त्रुटियां दिखाई देती हैं। कोड स्नैपशॉट के बाद नीचे उल्लिखित त्रुटियों का उल्लेख किया गया है।

 apply plugin: 'java' 
// apply plugin: 'pmd' 
// apply plugin: 'findbugs' 
// apply plugin: 'checkstyle' 
// apply plugin: 'code-quality' 
    apply plugin: 'jacoco' 

    tasks.withType(Compile) { 
    options.debug = true 
    options.compilerArgs = ["-g"] 
    } 

// checkstyle { 
//  configFile = new File(rootDir, "config/checkstyle.xml") 
//  ignoreFailures = true 
// } 


// findbugs { 
//  ignoreFailures = true 
// } 

// pmd { 
//  ruleSets = ["basic", "braces", "design"] 
//  ignoreFailures = true 
// } 
// 

    jacoco { 
     toolVersion = "0.6.2.201302030002" 
     reportsDir = file("$buildDir/customJacocoReportDir") 
    } 

    sourceSets { 
     main { 
     java { 
      srcDir 'src/java' 
     } 
     } 
     test { 
     java { 
      srcDir 'test/java' 
     } 
     } 
     integrationTest { 
     java { 
      srcDir 'src/java-test' 
     } 
     } 
    } 

    test { 
     jacoco { 
      append = false 
      destinationFile = file("$buildDir/jacoco/jacocoTest.exec") 
      classDumpFile = file("$buildDir/jacoco/classpathdumps") 
     } 
    } 

    jacocoTestReport { 
     group = "Reporting" 
     description = "Generate Jacoco coverage reports after running tests." 
     reports { 
       xml{ 
        enabled true 
        destination "${buildDir}/reports/jacoco/jacoco.xml" 
       } 
       csv.enabled false 
       html{ 
        enabled true 
        destination "${buildDir}/jacocoHtml" 
       } 
     } 
     additionalSourceDirs = files(sourceSets.main.allJava.srcDirs) 
    } 

त्रुटियाँ: ए टास्क विफल रहा है। आउटपुट निम्नलिखित दिखाता है।

.. 
.... 
:compileIntegrationTestJava 
/production/jenkinsAKS/jobs/Project_or_Module/workspace/src/java-test/com/tr/ids/application/project_or_module/Project_or_ModuleTestCase.java:11: 
package org.apache.cactus does not exist import 
org.apache.cactus.ServletTestCase; 
         ^/production/jenkinsAKS/jobs/Project_or_Module/workspace/src/java-test/com/tr/ids/application/project_or_module/Project_or_ModuleTestCase.java:13: 
> cannot find symbol symbol: class ServletTestCase public class 
> Project_or_ModuleTestCase extends ServletTestCase 
> 
... 
    .... 
    ..... 
    some more errors 
    ... 
    ... 
    100 errors (similar errors). 

आप यहाँ ध्यान देंगे कि जब Gradle "src/जावा परीक्षण" फ़ोल्डर के लिए ऊपर कार्य बुला रहा है त्रुटि आ रहा है है।

** मेरा प्रश्न 1 **: उन पंक्तियों के साथ build.gradle फ़ाइल में टिप्पणी की गई, मैंने इन त्रुटियों को कभी नहीं देखा और "स्वच्छ निर्माण jacocoTestReport" कार्य सफलतापूर्वक पूर्ण हो जाते हैं लेकिन जब pmd/findbugs/checkstyle के लिए कोड सक्षम होता है, तो मैं इन त्रुटियों को देखें। यह जावा-टेस्ट कोड क्यों संकलित कर रहा है। मैंने सोचा था कि स्रोत कोड केवल प्रोजेक्ट के लिए स्रोत/जावा (वास्तविक जावा स्रोत कोड) है: project_or_module)

बी। अन्य परियोजनाओं में से एक परियोजना परियोजनाएं पीएमडी चरण में विफल रही हैं, भले ही त्रुटि को अनदेखा कर दिया जाए। Pmd के लिए । त्रुटि कहती है कि 3 परीक्षण विफल रहे।

त्रुटि लॉग:

20:06:20 :pmdIntegrationTest UP-TO-DATE 
20:06:21 :pmdMain 
20:06:21 Download http://devserver2:8081/artifactory/jcenter-cache/pmd/pmd/4.3/pmd-4.3.pom 
20:06:21 Download http://devserver2:8081/artifactory/jcenter-cache/asm/asm/3.2/asm-3.2.pom 
20:06:21 Download http://devserver2:8081/artifactory/jcenter-cache/asm/asm-parent/3.2/asm-parent-3.2.pom 
20:06:21 Download http://devserver2:8081/artifactory/jcenter-cache/junit/junit/4.4/junit-4.4.pom 
20:06:21 Download http://devserver2:8081/artifactory/jcenter-cache/xml-apis/xml-apis/1.3.02/xml-apis-1.3.02.pom 
20:06:21 Download http://devserver2:8081/artifactory/jcenter-cache/pmd/pmd/4.3/pmd-4.3.jar 
20:06:21 Download http://devserver2:8081/artifactory/jcenter-cache/asm/asm/3.2/asm-3.2.jar 
20:06:21 Download http://devserver2:8081/artifactory/jcenter-cache/junit/junit/4.4/junit-4.4.jar 
20:06:24 251 PMD rule violations were found. See the report at: file:///production/jenkinsAKS/jobs/ProjectAUtilities/workspace/build/reports/pmd/main.html 
20:06:26 :pmdTest 
20:06:26 16 PMD rule violations were found. See the report at: file:///production/jenkinsAKS/jobs/ProjectAUtilities/workspace/build/reports/pmd/test.html 
20:06:26 :test 
20:06:26 Download http://devserver2:8081/artifactory/jcenter-cache/org/jacoco/org.jacoco.agent/0.6.2.201302030002/org.jacoco.agent-0.6.2.201302030002.pom 
20:06:26 Download http://devserver2:8081/artifactory/jcenter-cache/org/jacoco/org.jacoco.build/0.6.2.201302030002/org.jacoco.build-0.6.2.201302030002.pom 
20:06:27 Download http://devserver2:8081/artifactory/jcenter-cache/org/jacoco/org.jacoco.agent/0.6.2.201302030002/org.jacoco.agent-0.6.2.201302030002.jar 
20:06:29 Xlib: connection to "localhost:13.0" refused by server 
20:06:29 Xlib: PuTTY X11 proxy: wrong authorisation protocol attempted 
20:06:29 
20:06:29 com.tr.ids.util.test.chart.TestChartUtilities > getPieChart FAILED 
20:06:29  java.lang.InternalError at TestChartUtilities.java:89 
20:06:29 
20:06:29 com.tr.ids.util.test.chart.TestChartUtilities > getLegend FAILED 
20:06:29  java.lang.NoClassDefFoundError at TestChartUtilities.java:103 
20:06:29 
20:06:29 com.tr.ids.util.test.chart.TestChartUtilities > useString FAILED 
20:06:29  java.lang.NoClassDefFoundError at TestChartUtilities.java:143 
20:06:29 
20:06:29 140 tests completed, 3 failed 
20:06:29 :test FAILED 
20:06:29 
20:06:29 FAILURE: Build failed with an exception. 
20:06:29 
20:06:29 * What went wrong: 
20:06:29 Execution failed for task ':test'. 
20:06:29 > There were failing tests. See the report at: file:///production/jenkinsAKS/jobs/ProjectAUtilities/workspace/build/reports/tests/index.html 
20:06:29 
20:06:29 * Try: 
20:06:29 Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 
20:06:29 
20:06:29 BUILD FAILED 

मेरे question2: क्या विन्यास मैं build.gradle में PMD अनुभाग है कि परीक्षण पर ध्यान नहीं देगा अगर वे असफल के लिए स्थापित करना चाहिए। मुझे लगता है कि मैं पहले से ही है अर्थात ignoreFailures = सच

सी का उपयोग कैसे करें Checkstyle/PMD/build.gradle फ़ाइल में FindBugs (नहीं चींटी) के लिए/बाहर निकालने के शामिल हैं। यानी यह नहीं होगा और "src/java" फ़ोल्डर के अलावा कुछ भी नहीं करेगा।

धन्यवाद।

उत्तर

10

निम्नलिखित बी को छोड़कर सभी मुद्दों के लिए चाल किया था (प्रश्न 2) यानी एक sourceSets लाइन जोड़ लिया है और उन 3 उपकरणों को बताया (PMD/checkstyle/FindBugs) शायद मुख्य (स्रोत कोड जो "src/जावा है देखने के लिए ") स्रोतसेट परिभाषा के तहत। वैसे, मैंने "स्रोतसेट" अनुभाग लिया और इसे निम्न पंक्तियों से पहले भी परिभाषित किया।

checkstyle { 
     configFile = new File(rootDir, "config/checkstyle.xml") 
     ignoreFailures = true 
     sourceSets = [sourceSets.main] 
    } 


    findbugs { 
     ignoreFailures = true 
     sourceSets = [sourceSets.main] 
    } 

    pmd { 
     ruleSets = ["basic", "braces", "design"] 
     ignoreFailures = true 
     sourceSets = [sourceSets.main] 
    } 
+0

उपर्युक्त कोड ने केवल चेकस्टाइल/findbugs/pmd बनाया - केवल src/java (जो मेरा स्रोतसेट्स.माइन है) जांचें। इसके अलावा, मेरे प्रश्न 1 की त्रुटि को हल करने के बाद हल किया गया है जब मैंने build.gradle फ़ाइल (प्रोजेक्ट/मॉड्यूल स्तर पर) पर निर्भर जार नाम शामिल/उल्लेख किया है। Xvfb प्लगइन के बारे में दूसरी त्रुटि या प्रश्न, जेनकिंस में Xvfb प्लगइन को हटाकर, जेनकींस को पुनरारंभ करने और आखिरकार वर्कस्पेस को साफ करके हल किया गया है, यानी सब कुछ इंडर जेनकिन्स इंस्टेंस/जॉब्स//वर्कस्पेस/.... स्तर हटा दिया गया है –

संबंधित मुद्दे