Tips and Tricks for Ant on Eclipse. Make JAR file for each subsystem (PAE2アドオン開発・サブシステム毎にjar作成)
ProActiveE2はサブシステム(財務会計、債権、債務…等)毎にjarファイルが分割されています
それにならって、アドオン開発でもこの単位でjarファイルを用意しています
が、開発中(特にテストフェーズ!)は頻繁にjar化する必要があるので、ちょっと面倒です
この作業を ANTを使って一括実行するスクリプトについて勉強をしたときのメモです
build.properties
これいらないんじゃないの?ってものありますが、まぁそこはスルーしてください
# do not use eclipse helper GUI custom = true src.encoding=Windows-31J app.name=${ant.project.name} src.dir=./src lib.dir=./lib lib4batch.dir=./lib4batch external.dir=./external defaultroot.dir=./defaultroot etc.dir=./build bld.dir=./build.ant bld.src.dir=${bld.dir}/src bld.classes.dir=${bld.dir}/classes bld.jar.dir=${bld.dir}/jars bak.files=**/*~ # Tomcat catalina.home=C:/proactive_devtool/tomcat6.0
build.xml
ANTのメインです。僕の中での工夫ポイントは、
です。後は、(6)のところをサブシステムの数だけコピペして編集すればOK!
ソースの添付とか、実機での稼動確認とか残タスクもありますが、そこはおいおい。
<?xml version="1.0" encoding="Windows-31J"?> <project name="paradise" basedir="." default="all"> <property file="build.properties"/> <property name="keeptimestamp" value="false"/> <property name="verbose" value="false"/> <!-- 全てのターゲットを実行 --> <target name="all" depends="make-jar"/> <!-- 1. ビルド開始メッセージ --> <target name="begin-message"> <echo>BuildName: ${ant.project.name}</echo> <echo>BuildHome: ${basedir}</echo> <echo>BuildJVM: ${ant.java.version}</echo> <echo>BuildFile: ${ant.file}</echo> </target> <!-- 2. 初期化。クラスパスの設定(とにかく何でも詰め込む) --> <target name="init" depends="begin-message"> <path id="compile.class.path"> <!-- PAE2 JAR (1) --> <path><fileset dir="${lib.dir}"><include name="*.jar"/></fileset></path> <!-- PAE2 JAR (2) --> <path><fileset dir="${lib4batch.dir}"><include name="*.jar"/></fileset></path> <!-- コンテナJAR --> <path><fileset dir="${catalina.home}/lib"><include name="*.jar"/></fileset></path> </path> </target> <!-- 3. ディレクトリ・バックアップファイル削除 --> <target name="clean" depends="init"> <delete dir="${bld.dir}"/> <delete><fileset dir="." includes="${bak.files}" defaultexcludes="no"/></delete> <sleep seconds="1"/> </target> <!-- 4. ビルドディレクトリ作成・external ソースファイルコピー --> <target name="setup" depends="clean"> <mkdir dir="${bld.dir}"/> <mkdir dir="${bld.src.dir}"/> <mkdir dir="${bld.classes.dir}"/> <mkdir dir="${bld.jar.dir}"/> <copy todir="${bld.src.dir}" includeemptydirs="true" preservelastmodified="${keeptimestamp}" verbose="${verbose}"> <fileset dir="${external.dir}" includes="**/*"/> </copy> </target> <!-- 5. コンパイル ALL --> <target name="compile" depends="setup"> <javac destdir="${bld.classes.dir}" debug="on" memoryMaximumSize="512m" fork="true"> <src path="${bld.src.dir}"/> <classpath> <path refid="compile.class.path"/> </classpath> </javac> </target> <!-- 6. jarパッケージング --> <target name="make-jar" depends="init"> <property name="wkdir" value="${bld.dir}/classesWK"/> <delete dir="${wkdir}"/> <mkdir dir="${wkdir}"/> <javac destdir="${wkdir}" debug="on" memoryMaximumSize="512m" fork="true"> <src path="${bld.src.dir}/hoge-addons/src-hoge-agl"/> <classpath> <path refid="compile.class.path"/> <pathelement path="${bld.classes.dir}"/> </classpath> </javac> <jar jarfile="${bld.jar.dir}/hoge-agl.jar"/> </target> </project>