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