Now we have a pretty dynamic build process. To clean it up a bit, we can remove the property declarations and place them in a separate file.

You can remove these lines from the build.xml file:

    <property name="dir.lib" value="lib"/>
    <property name="dir.src" value="src/main/java"/>
    <property name="dir.build" value="build"/>
    <property name="dir.build.source" value="${dir.build}/classes"/>
    <property name="dir.build.tests" value="${dir.build}/tests"/>
    <property name="dir.build.tests" value="${dir.build}/tests"/>
    <property name="dir.build.tests.classes" value="${dir.build.tests}/classes"/>
    <property name="dir.build.tests.reports" value="${dir.build.tests}/reports"/>
    <property name="dir.build.tests.reports.raw" value="${dir.build.tests.reports}/raw"/>
    <property name="dir.build.tests.reports.html" value="${dir.build.tests.reports}/html"/>
    <property name="dir.build.docs" value="${dir.build}/docs"/>
    <property name="dir.build.docs.tests" value="${dir.build.docs}/tests"/>
    <property name="dir.build.docs.api" value="${dir.build.docs}/api"/>
    <property name="doc.title" value="Java Persistence Project"/>
    <property name="doc.copyright" value="Copyright &#169; 2009 Travis Osterman. All Rights Reserved."/>
    <property name="dir.build.jar" value="${dir.build}/jar"/>
    <property name="jar.name" value="${ant.project.name}.jar"/>
    <property name="main.class" value="net.wsor.osterman.javapersistence.Main"/>
    <property name="dir.deploy" value="${basedir}/deploy"/>
    <property name="dir.deploy.temp" value="${dir.build}/deploy"/>
    <property name="dir.deploy.temp.doc" value="${dir.deploy.temp}/doc"/>
    <property name="dir.deploy.temp.doc.api" value="${dir.deploy.temp.doc}/api"/>
    <property name="dir.deploy.temp.doc.tests" value="${dir.deploy.temp.doc}/tests"/>
    <property name="dir.deploy.temp.jar" value="${dir.deploy.temp}/jar"/>
    <property name="package.name" value="${ant.project.name}.zip"/>

and create a file JP/build.properties

    dir.lib = lib

    dir.src = src/main/java

    dir.build = build

    dir.build.source = ${dir.build}/classes

    dir.build.tests = ${dir.build}/tests
    dir.build.tests.classes = ${dir.build.tests}/classes
    dir.build.tests.reports = ${dir.build.tests}/reports
    dir.build.tests.reports.raw = ${dir.build.tests.reports}/raw
    dir.build.tests.reports.html = ${dir.build.tests.reports}/html

    dir.build.docs = ${dir.build}/docs
    dir.build.docs.tests = ${dir.build.docs}/tests
    dir.build.docs.api = ${dir.build.docs}/api

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

    dir.deploy = ${basedir}/deploy
    dir.deploy.temp = ${dir.build}/deploy
    dir.deploy.temp.doc = ${dir.deploy.temp}/doc
    dir.deploy.temp.doc.api = ${dir.deploy.temp.doc}/api
    dir.deploy.temp.doc.tests = ${dir.deploy.temp.doc}/tests
    dir.deploy.temp.jar = ${dir.deploy.temp}/jar

    doc.title = Java Persistence Project
    doc.copyright = Copyright &#169; 2009 Travis Osterman. All Rights Reserved.

    jar.name = ${ant.project.name}.jar
    main.class = net.wsor.osterman.javapersistence.Main

    package.name = ${ant.project.name}.zip

Finally, add this line near the top of the build file

    <?xml ...>
    <project ...>
        <property file="build.properties"/>
> ant all

Make sure everything still works.

> ant svn

commit