開発は 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