Jednoduchý Ant build skript

Často se mi stává, že když začínám psát nějaký build skript, tak nevím, jak začít. Chce to vždycky nějaký exampl, od kterého se odrazit. Takový jsem si vytvořil sám – jednoduchý skript, který kompiluje vše z adresáře src/ a vytváří jar soubor v adresáři dist/ do kterého zapíše nějaký ten MANIFEST.MF.

Příklad Ant skriptu

<project name="forsuber" default="dist" basedir=".">
 
    <property name="mainclass" value="net.forsuber.FormSubmiterMain"/>
    <property name="version.num" value="1.00"/>
    <property name="src" location="src"/>
    <property name="build" location="build"/>
    <property name="dist" location="dist"/>
    <buildnumber file="build.num"/>
    <tstamp>
        <format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss"/>
    </tstamp>
 
    <path id="classpath.runtime">
        <fileset dir="lib">
            <include name="**/*.jar"/>
        </fileset>
    </path>
 
    <path id="classpath.build">
        <path refid="classpath.runtime"/>
    </path>
 
    <target name="init">
        <mkdir dir="${build}"/>
    </target>
 
    <target name="compile" depends="init">
        <javac srcdir="${src}" destdir="${build}">
            <classpath>
                <path refid="classpath.build"/>
            </classpath>
        </javac>
    </target>
 
    <target name="dist" depends="compile">
        <pathconvert property="classpath.runtime.property"
                     pathsep=" ">
            <path refid="classpath.runtime"/>
            <flattenmapper/>
        </pathconvert>
        <mkdir dir="${dist}"/>
        <jar jarfile="${dist}/forsuber.jar" basedir="${build}">
            <fileset dir="${build}"
                     excludes="**/Test.class"/>
            <fileset dir="${src}">
                <exclude name="**/*.java"/>
            </fileset>
            <manifest>
                <attribute name="Implementation-Version"
                           value="${version.num}-b${build.number}"/>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Built-Date" value="${TODAY}"/>
                <attribute name="Main-Class" value="${mainclass}"/>
                <attribute name="Class-Path" value="${classpath.runtime.property}"/>
            </manifest>
        </jar>
    </target>
 
    <target name="clean">
        <delete dir="${build}"/>
        <delete dir="${dist}"/>
    </target>
</project>

O něco složitější je šablona, kterou jsem připravil. Kromě mírně rozšířeného build.xml obsahuje také adresářovou strukturu a nástroje JUnit a Lint4j včetně nadefinovaných Ant tasků.

Šablona pro typický Ant projekt

Berte to opravdu jako malou ukázku toho, jak by to šlo dělat. Je mnoho dalších způsobů, vyplývá to také z toho, že Ant je vlastně svům způsobem programovací jazyk – tím se liší od Mavenu.

Diskuze

Lukáš Zapletal, 30.07.2007 15:48:

A ještě si potřebuju poznačit, že název proměnné s adresářemi pro dynamické knihovny je LD_LIBRARY_PATH. Furt to zapomínám :-)

 
If you can't read the letters on the image, download this .wav file to get them read to you.
pridej.cz
blog/jednoduchy_ant_build_skript.txt · Poslední úprava: 29.05.2008 09:04 (external edit)
Creative Commons License Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0