開発は Maven でやるが、納品した後にインターネットにアクセスできない環境でもビルドできるように Ant でもビルドできるようにしたいときの build.xml のひな形
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk/bin/java
export ANT_HOME=/nas/apps/src/tools/apache-ant-1.8.2
export PATH=/bin:$JAVA_HOME/bin:$ANT_HOME/bin
ant
# build に成功していた場合には Jar ファイルをコピー
if [ -f /nas/apps/src/MyApp/target/MyApp.jar ]; then
cp /nas/apps/src/MyApp/target/MyApp.jar /nas/apps/bin/MyApp/MyApp.jar
fi
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyApp" default="build" basedir=".">
<property file="build.properties" />
<path id="class.path">
<fileset dir="${libDir}">
<include name="**/*.jar" />
</fileset>
</path>
<target name="build" depends="clean,compile,jar" />
<target name="clean">
<delete dir="${destDir}" />
<mkdir dir="${destDir}"/>
<mkdir dir="${destDir}/classes"/>
</target>
<target name="compile"
description="ソースコードのコンパイルをします">
<javac
srcdir="${srcDir}"
excludes="${excludes}"
destdir="${destDir}/classes"
deprecation="${javac.deprecation}"
debug="${javac.debug}"
optimize="${javac.optimize}"
encoding="${javac.encoding}"
source="${javac.source}"
target="${javac.target}"
classpathref="class.path"
includeantruntime="false" />
<copy
todir="${destDir}/classes"
preservelastmodified="yes" >
<fileset dir="${resourceDir}">
<include name="**/*" />
</fileset>
</copy>
</target>
<target name="jar">
<jar
jarfile="${destDir}/${ant.project.name}.jar"
manifest="manifest.txt">
<fileset dir="${destDir}/classes">
</fileset>
</jar>
</target>
</project>
## # dir setting (build.xml の basedir からの相対指定) ## srcDir=./src/main/java resourceDir=./src/main/resources destDir=./target libDir=../../bin/MyApps ## # javac setting ## javac.debug=on javac.deprecation=on javac.optimize=off javac.encoding=UTF-8 javac.target=6 javac.source=6
Manifest-Version: 1.0 Main-Class: com.snail.some.App