summaryrefslogtreecommitdiff
path: root/ant/build-common.xml
blob: cb8ac057e6ae2e68eff4de4fa53ff9441a5fc501 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<project name="build-common"
    xmlns:ivy="antlib:org.apache.ivy.ant"
    xmlns:artifact="antlib:org.apache.maven.artifact.ant">
    
    <property name="src.dir" value="src" />

    <property name="build.dir" value="build" />
    <property name="build.classes" value="classes" />
    <property name="lib.dir"   value="lib" />

    <property name="java.target.version" value="1.7" />
    <property name="compile.debug"       value="true" />
    <property name="compile.deprecation" value="false" />
    <property name="compile.optimize"    value="true" />

    <property name="maven.groupid" value="net.jesterpm" />
    <property name="maven.artifactid" value="${ant.project.name}" />

    <!-- CLASSPATHs -->
    <path id="classpath.build">
        <fileset dir="${lib.dir}" />
    </path>
    <path id="classpath.run">
        <path refid="classpath.build" />
        <path location="${build.dir}/${build.classes}" />
    </path>

    <!-- Dependency Targets -->
    <target name="resolve" description="Resolve Dependencies">
        <ivy:retrieve />
    </target>

    <target name="dep-report" depends="resolve" description="Generate Dependency Report">
        <ivy:report todir="${build.dir}" />
    </target>

    <!-- Building/Running Targets -->
    <target name="prepare" description="Create the build directories">
        <mkdir dir="${build.dir}" />
        <mkdir dir="${build.dir}/${build.classes}" />
    </target>

    <target name="build" depends="prepare" description="Compile Project">
        <javac srcdir="${src.dir}"
            destdir="${build.dir}/${build.classes}"
            debug="${compile.debug}"
            deprecation="${compile.deprecation}"
            optimize="${compile.optimize}"
            source="${java.target.version}"
            target="${java.target.version}"
            classpathref="classpath.build" />

        <copy todir="${build.dir}/${build.classes}">
            <fileset dir="${src.dir}" excludes="**/*.java,**/*.swp"/>
        </copy>
    </target>

    <target name="run" depends="build" description="Run ${main.class}">
        <java classpathref="run.classpath" classname="${main.class}" />
    </target>

    <target name="clean" description="Clean Project">
        <delete includeemptydirs="true">
            <fileset dir="${basedir}">
                <include name="build/**" />
            </fileset>
        </delete>
    </target>

    <target name="clean-cache" description="Clean the Ivy Cache">
        <ivy:cleancache />
    </target>

    <target name="jar" depends="build" description="Generate JAR">
        <jar destfile="build/${ant.project.name}.jar" basedir="build">
            <manifest>
                <attribute name="Main-Class" value="${main.class}"/>
            </manifest>
        </jar>
    </target>

    <!-- Maven Targets -->
    <target name="pom" description="Generate pom.xml">
        <artifact:pom id="mypom"  groupId="${maven.groupid}" artifactId="${maven.artifactid}"
            version="1.0-SNAPSHOT" name="${maven.artifactid}" />
        <artifact:writepom pomRefId="mypom" file="${build.dir}/pom.xml" trim="false" />
    </target>

    <target name="maven-install" depends="clean,jar,pom" 
        description="Install artifact in local maven repo">
        
        <artifact:install file="build/${ant.project.name}.jar">
            <pom refid="mypom" file="${build.dir}/pom.xml"/>
        </artifact:install>
    </target>
</project>