ant - एन्टी का इस्तेमाल करते हुए सोनार में जैको को एकीकृत करना



sonarqube jacoco (1)

निम्नलिखित एक एंटी बिल्ड है जो एक जूनिट यूनिट टेस्ट को चलाने के लिए कॉन्फ़िगर किया गया है और कोड कवरेज रिपोर्टिंग के लिए जैकोओ का उपयोग करता है। परिणाम सोनार पर अपलोड किए जाते हैं और अंत में आईवी का उपयोग 3 पार्टी जार डाउनलोड करने और कक्षापथों का प्रबंधन करने के लिए किया जाता है।

उदाहरण

├── build.properties
├── build.xml
├── ivy.xml
└── src
    ├── main
    │   └── java
    │       └── org
    │           └── demo
    │               └── App.java
    └── test
        └── java
            └── org
                └── demo
                    └── AppTest.java

build.properties

# Build properties
build.dir=build

src.dir=src/main/java
test.src.dir=src/test/java

classes.dir=${build.dir}/classes
test.classes.dir=${build.dir}/test-classes

reports.dir=${build.dir}/reports

# Sonar properties
sonar.projectKey=org.demo:demo
sonar.projectName=Demo project
sonar.projectVersion=1.0
sonar.projectDescription=This is my demo Sonar project

sonar.host.url=http://localhost:9000

sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar
sonar.jdbc.driverClassName=org.h2.Driver
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

sonar.working.directory=${build.dir}/sonar

sonar.language=java
sonar.sources=${src.dir}
sonar.binaries=${classes.dir}
sonar.tests=${test.src.dir}

sonar.dynamicAnalysis=reuseReports
sonar.surefire.reportsPath=${reports.dir}/junit
sonar.java.coveragePlugin=jacoco
sonar.jacoco.reportPath=${build.dir}/jacoco.exec

build.xml

<project name="demo" default="test" xmlns:ivy="antlib:org.apache.ivy.ant">

    <property file="build.properties"/>

    <target name="bootstrap" description="Install ivy">
        <mkdir dir="${user.home}/.ant/lib"/>
        <get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar"/>
    </target>

    <target name="resolve" description="Download dependencies and setup classpaths">
        <ivy:resolve/>
        <ivy:report todir='${reports.dir}/ivy' graph='false' xml='false'/>

        <ivy:cachepath pathid="compile.path" conf="compile"/>
        <ivy:cachepath pathid="test.path"    conf="test"/>
        <ivy:cachepath pathid="build.path"   conf="build"/>
    </target>

    <target name="init" depends="resolve" description="Create build directories">
        <mkdir dir="${classes.dir}"/>
        <mkdir dir="${test.classes.dir}"/>
        <mkdir dir="${reports.dir}/junit"/>
    </target>

    <target name="compile" depends="init" description="Compile source code">
        <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false" debug="true" classpathref="compile.path"/>
    </target>

    <target name="compile-tests" depends="compile" description="Compile test source code">
        <javac srcdir="${test.src.dir}" destdir="${test.classes.dir}" includeantruntime="false" debug="true">
            <classpath>
                <path refid="test.path"/>
                <pathelement path="${classes.dir}"/>
            </classpath>
        </javac>
    </target>

    <target name="test" depends="compile-tests" description="Run unit tests and code coverage reporting">
        <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml" classpathref="build.path"/>

        <jacoco:coverage destfile="${build.dir}/jacoco.exec" xmlns:jacoco="antlib:org.jacoco.ant">
            <junit haltonfailure="yes" fork="true">
                <classpath>
                    <path refid="test.path"/>
                    <pathelement path="${classes.dir}"/>
                    <pathelement path="${test.classes.dir}"/>
                </classpath>
                <formatter type="plain" usefile="false" />
                <formatter type="xml"/>
                <batchtest fork="yes" todir="${reports.dir}/junit">
                    <fileset dir="${test.src.dir}">
                        <include name="**/*Test*.java"/>
                        <exclude name="**/AllTests.java"/>
                    </fileset>
                </batchtest>
            </junit>
        </jacoco:coverage>
    </target>

    <target name="sonar" depends="test" description="Upload metrics to Sonar">
        <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml" classpathref="build.path"/>

        <ivy:cachepath pathid="sonar.libraries" conf="compile"/> 

        <sonar:sonar xmlns:sonar="antlib:org.sonar.ant"/>
    </target>

    <target name="clean" description="Cleanup build files">
        <delete dir="${build.dir}"/>
    </target>

    <target name="clean-all" depends="clean" description="Additionally purge ivy cache">
        <ivy:cleancache/>
    </target>

</project>

ivy.xml

<ivy-module version="2.0">
    <info organisation="com.myspotontheweb" module="demo"/>

    <configurations defaultconfmapping="compile->default">
        <conf name="compile" description="Required to compile application"/>
        <conf name="test"    description="Required for test only" extends="compile"/>
        <conf name="build"   description="Build dependencies"/>
    </configurations>

    <dependencies>
        <!-- compile dependencies -->

        <!-- test dependencies -->
        <dependency org="junit" name="junit" rev="4.10" conf="test->default"/>

        <!-- build dependencies -->
        <dependency org="org.codehaus.sonar-plugins" name="sonar-ant-task" rev="2.1" conf="build->default"/>
        <dependency org="org.jacoco" name="org.jacoco.ant" rev="0.6.3.201306030806" conf="build->default"/>

        <!-- Global exclusions -->
        <exclude org="org.apache.ant"/>
    </dependencies>

</ivy-module>

मैं जैकको को चींटी का उपयोग करके सोनार के साथ एकीकृत कर रहा हूं। इस कार्य के लिए बहुत नया है, और पहली बार एकीकृत करने के लिए मैं जैसे कई लिंक के माध्यम से चले गए हैं

मैं किसी अन्य वीएम पर परिणाम प्रदर्शित करने की कोशिश कर रहा हूं, और कोड मेरे वीएम में है जेडीके 6, वीएम से संबंधित सभी प्रकार की त्रुटियों को प्राप्त करना, और मेरे पैकेज संरचना का विश्लेषण करने में सक्षम नहीं है मेरी राय मुझे वीएम आदि के लिए उपर्युक्त लिंक्स के बगल में दिए गए किसी भी विशिष्ट प्रॉपर्टी गुणों को परिभाषित करने की आवश्यकता है। मैं यह भी शामिल करना चाहूंगा कि मेरा चेकस्टाइल, और खोजबग्ज़ आकर्षण की तरह काम कर रहे हैं केवल जकोको को एकीकृत करने की आवश्यकता है कोई भी जानकारी बहुत मददगार होगी

यदि मेरा विवरण मेरे निशान तक नहीं है, तो कृपया पूछें

मदद के लिए धन्यवाद