Enhance the build file

Enhance the build file

Now we have a working buildfile we could do some enhancements: many time you are referencing the same directories, main-class and jar-name are hard coded, and while invocation you have to remember the right order of build steps.

The first and second point would be addressed with properties, the third with a special property - an attribute of the <project>-tag and the fourth problem can be solved using dependencies.

<project name="HelloWorld" basedir="." default="main">

<property name="src.dir"     value="src"/>

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

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

<property name="jar.dir"     value="build/jar"/>

<property name="main-class"  value="oata.HelloWorld"/>

<target name="clean">

<delete dir="build"/>

</target>

<target name="compile">

<mkdir dir="${classes.dir}"/>

<javac srcdir="src" destdir="${classes.dir}"/>

</target>

<target name="jar" depends="compile">

<mkdir dir="${jar.dir}"/>

<jar destfile="${jar.dir}/apache-ant.jar" basedir="${classes.dir}">

<manifest>

<attribute name="Main-Class" value="${main-class}"/>

</manifest>

</jar>

</target>

<target name="run" depends="jar">

<java jar="${jar.dir}/apache-ant.jar" fork="true"/>

</target>

<target name="clean-build" depends="clean,jar"/>

<target name="main" depends="clean,run"/>

</project>

Now it's easier, just do a ant and you will get

Buildfile: build.xml

clean:

compile:

[mkdir] Created dir: C:\...\build\classes

[javac] Compiling 1 source file to C:\...\build\classes

jar:

[mkdir] Created dir: C:\...\build\jar

[jar] Building jar: C:\...\build\jar\HelloWorld.jar

run:

[java] Hello World

main:

BUILD SUCCESSFUL

你可能感兴趣的:(Build)