2002/11/16 作成
ここでは、Antのタスクをいろいろ触ってみます。
XMLの妥当性検査(XMLValidateタスク)
ejb-jar.xmlやstruts-config.xmlで、 デプロイしないと、実行しないとエラーがわからない。 って、いうのは手間ですよね。 コンパイルエラーみたいなもんなんで、編集時に すぐエラー表示してもらいたいもんです。
探してみたら、まさにそのものがありました
オプショナルタスクのXmlValidateタスクです。
いやぁ、そんなのあったんですね。。。今日知りました。
<xmlvalidate file="${res}/META-INF/ejb-jar.xml" warn="no"/>
MS932なのにShift_JISって書いてるよ、って毎回警告されるのは 警告noで消えました(消していいのかどうかわかりませんが。。。)。
本当はIDE上で右クリック->Validateとかいう風に実行したいんすけど、
まあ、これでも十分、便利ですよね。
ディレクトリ以下の.jarをクラスパスに含める
クラスパスに含めるjarがたくさんあって、しかもたまに増えたり、減ったりする。 あるディレクトリ以下のjarをクラスパスに含めたい場合があります。
javaコマンドだと、
javac -extdirs=hoge SomeClass.java
java -Djava.ext.dirs=hoge SomeClass
というオプションもありますが、Antだとどうする?
Antのパス類似構造を使って、こんな感じで書くことができます。
<path id="ejb.classpath"> <fileset dir="${jboss.client}"> <include name="**/*.jar" /> </fileset> </path> <target name="compile"> <javac srcdir="${src}" destdir="${classes}" classpathref="ejb.classpath" debug="on" /> </target> <target name="run"> <java classname="hello.Client" fork="yes"> <classpath> <pathelement path="${classes}"/> <path refid="ejb.classpath"/> </classpath> </java> </target>
OSに依存しないAntですが、OSに依存したコマンドを実行したい場合があります。
そういうときにはExecタスクを使います。
基本はAntマニュアルのサンプルです。
<exec executable="cmd.exe" os="Windows XP"> <arg line="/c dir"/> </exec>
引数の /c というのはWindowsのcmd.exeの引数で、
"/cの後のコマンドを実行した後終了"という意味です。
(意味は、DOS窓で、cmd /? でヘルプが出る)
OSをちゃんと指定しないと動かないみたいです。
OSはシステムのプロパティーで出てくるos.nameの値です。
Javaからこんな感じでシステム環境変数をリストして確認できます。
System.getProperties().list(System.out);
で、ちゃんと動いたら、やりたいことを記述するといいかな、と思われます。
<exec executable="cmd.exe" os="Windows XP"> <arg line="/c C:/apps/j2sdkee1.3.1/bin/verifier ${build}/ejb06b.jar -o${build}/verify -f"/> </exec>