Ant J2EE II 第5回 2005年4月24日 1 ここでの目標 Ant の基本について理解する。 2 Ant の概要 3 Ant とは何か Javaのプログラムのコンパイルや実行を手 助けしてくれるツール 例えば、コンパイルや実行のときに必要な、 Jarファイルやオプションの指定が楽になる。 「ビルドツール」と呼ばれる。 Unix での make のようなもの 4 Ant の特徴 Javaでできているので、環境に依存しない。 標準で多くの処理が組み込みに。 javac, java, javadoc, cvs, メール送信など。 処理内容はXMLファイルに記述 build.xml というファイルに記述する makeの「タブ地獄」よ、さようなら。 5 build.xml の記述 6 build.xml Ant では、プログラムのコンパイルや実行 の方法を build.xml というファイルに記述 する。 ひとつのproject要素 projectには複数のtarget要素 targetには複数のtask propertyで名前と値をペアで管理 7 パターン (1) ファイルやディレクトリの指定で、Windows や Unix のようなパターンを使える。 *.java .java や a.java にマッチ。 a.xml にはマッチしない。 ?.java b.java にマッチ。 .java にはマッチしない。 8 パターン (2) csv/** csv ディレクトリ以下の、すべてのファイル・ ディレクトリにマッチする。 **/*.java すべてのディレクトリの *.java にマッチする。 9 property 名前と値がペアになっているもの プロパティの設定 <property name="srcDir" value="src" /> プロパティへのアクセス ${srcDir} 10 task 処理の最小単位 さまざまなtaskが標準で用意されている java / javac / jar / javadoc mkdir / zip tstamp など 11 javac という task <javac srcdir="${srcDir}" destdir="${classDir}" /> ソースファイルのコンパイルを行う srcdir 属性がソースファイルのありか destdir 属性がクラスファイルの生成先の ディレクトリ 12 target (1) 複数のtaskをまとめたもの 例えば、「ディレクトリを作って」「コンパイルを 行う」など Ant で処理を行う場合の基本単位 13 target (2) <target name="compile“ depends="init"> <mkdir dir="${classDir}" /> <javac srcdir="${srcDir}" destdir="${classDir}" /> </target> “compile” というターゲット名 14 targetの依存関係 (1) このtargetを処理するために必要なtarget たとえば、Jarファイルを作成する前にコン パイルが必要。 あるtargetだけを取り出して処理することも 可能。 たとえば、Javadoc の作成など。 15 targetの依存関係 (2) compile の前に init の処理 <target name="compile" depends="init"> <mkdir dir="${classDir}" /> <javac srcdir="${srcDir}" destdir="${classDir}" /> </target> <target name="jar" depends="compile"> <jar jarfile="csv.jar" basedir="${classDir}" /> </target> 16 Ant の実行 17 Ant を動かすには 環境変数 ANT_HOME の設定が必要 %ANT_HOME%\bin に path を通す 18 Ant の実行 (1) build.xml があるディレクトリで実行する。 ant 引数なしで ant コマンドを実行すると デフォルトの target が実行される。 この場合は all という target このとき、target の依存関係をたどり、必要な target から順に実行される。 <project name="csv" default="all" basedir="."> 19 Ant の実行 (2) ant compile compile target が実行される。 20 もう一つの例 21 環境変数の取得 環境変数をよみこみ、env という変数に格 納 <property environment="env"/> 環境変数 JWSDP の値(+ /jaxrpc)を、 jaxrpc.home プロパティの値とする。 <property name="jaxrpc.home" value="${env.JWSDP_HOME}/jaxrpc"/> 22 クラスパスの設定 (1) <path id="wspack.classpath"> <pathelement location= "${jaxrpc.home}/lib/jaxrpc-api.jar"/> <pathelement location= "${jaxrpc.home}/lib/jaxrpc-impl.jar"/> </path> 23 クラスパスの設定 (2) <target name="compile" depends="init"> <javac srcdir="."> <include name="*.java" /> <classpath> <path refid="wspack.classpath"/> </classpath> </javac> </target> 24
© Copyright 2024 ExpyDoc