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>