- PR -

ant について

投稿者投稿内容
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2002-01-22 19:33
最近、ここの掲示板で ant の話題があるので、私も試しに使ってみています。

なかなか面白そうなツールだと思っているのですが、一つ使い方について教えて頂けないでしょうか?
javac タスク(または、他のタスク)の標準出力(標準エラー出力)をファイルに吐き出す方法はないでしょうか?

Windows98なのですが、画面に出力される行数が多いと上の方の出力が見えなくなってしまい、困っています。

それまでは、errout.exe なるツールで、(errout javac … とかで)標準エラー出力をファイルに吐き出していたのですが。。。

タスクのオプションにもそれらしきものはなさそうですし、何かよい方法はないでしょうか?
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2002-01-22 22:21
${ANT_HOME}/bin/ant -help を見てみると、
「-logfile ファイル名」
というオプションがあります。

これで、どうですか???
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2002-01-23 12:04
タスクのオプションばかりに目が行っていて、ant 自身のオプションに気が回りませんでした。。。

教えていただいた方法で解決できました。

ありがとうございました。
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2002-01-24 18:01
なかなか便利なツールなので、ant を積極的に利用するようにしています。

…で、また不明点が出てきてしまいました。
java タスクで 起動するクラスに 引数を指定したいのですが、build.xmlに固定値を持つのではなく、ant 実行時に指定したいのです。よい方法はないでしょうか?

ant の書式が以下であることから、「不可能なのかな?」と思ったりしていますが
ant [options] [target [target2 [target3] ...]]

どうなんでしょうか?
H2
ぬし
会議室デビュー日: 2001/09/06
投稿数: 586
お住まい・勤務地: 港
投稿日時: 2002-01-24 18:42
ね?便利でしょ

-D <property>=<value> オプションは?

[ メッセージ編集済み 編集者: H2 編集日時 2002-01-24 18:42 ]
miki
大ベテラン
会議室デビュー日: 2001/09/21
投稿数: 174
お住まい・勤務地: 東京都八王子市
投稿日時: 2002-01-24 19:13
頻繁に変更しない引数ならプロパティファイルを併用するという手もありそうですね。

<property file="foo.properties"/>
ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2002-01-24 19:19
すごい早いレスありがとうございます。

もう少し時間があれば、JUnitにも挑戦しようかなと思ってみたり。。。

やっぱりそう言う方法になるんですね。
(なんとなくそうかなと思いつつ、聞いてしまいました。)

ついでにといっては何なのですが、もう一つまさに今悩んでいるのですが、
ant 実行時に

BUILD FAILED
D:\hoge\build.xml:33: java.lang.IllegalAccessException

のエラーが出ています。
build.xml:33 は
<java classname="chkxml" >
と単純にクラス名書いているだけなのでなんでかなぁと・・・

-debug をつけて、ant を起動すると

コード:
D:\hoge\build.xml:33: java.lang.IllegalAccessException
  at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:138)
  at org.apache.tools.ant.taskdefs.Java.run(Java.java:305)
  at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:127)
  at org.apache.tools.ant.taskdefs.Java.execute(Java.java:88)
  at org.apache.tools.ant.Task.perform(Task.java:217)
  at org.apache.tools.ant.Target.execute(Target.java:164)
  at org.apache.tools.ant.Target.performTasks(Target.java:182)
  at org.apache.tools.ant.Project.executeTarget(Project.java:601)
  at org.apache.tools.ant.Project.executeTargets(Project.java:560)
  at org.apache.tools.ant.Main.runBuild(Main.java:454)
  at org.apache.tools.ant.Main.start(Main.java:153)
  at org.apache.tools.ant.Main.main(Main.java:176)
--- Nested Exception ---
java.lang.IllegalAccessException
  at java.lang.reflect.Method.invoke(Native Method)
  at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:124)
  at org.apache.tools.ant.taskdefs.Java.run(Java.java:305)
  at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:127)
  at org.apache.tools.ant.taskdefs.Java.execute(Java.java:88)
  at org.apache.tools.ant.Task.perform(Task.java:217)
  at org.apache.tools.ant.Target.execute(Target.java:164)
  at org.apache.tools.ant.Target.performTasks(Target.java:182)
  at org.apache.tools.ant.Project.executeTarget(Project.java:601)
  at org.apache.tools.ant.Project.executeTargets(Project.java:560)
  at org.apache.tools.ant.Main.runBuild(Main.java:454)
  at org.apache.tools.ant.Main.start(Main.java:153)
  at org.apache.tools.ant.Main.main(Main.java:176)



のスタックトレースが出ていますが、何のことかさっぱり です。

上記のタグの子タグを全て削除しても同じエラーが出ますし、途方に暮れています。

何か思い当たることはあるでしょうか?




ふうた
大ベテラン
会議室デビュー日: 2001/08/23
投稿数: 198
お住まい・勤務地: 岡山
投稿日時: 2002-01-24 23:24
ちょっとはまってるかもです。。。

ちなみに 先ほどのスタックトレースの前には、以下のような表示があります。
(M0101010001.pmi は、build.xml のjavaタスクで設定した引数です。)

run:
[java] Running in same VM chkxml M0101010001.pmi
force loading chkxml
Finding class chkxml
Class java.lang.Object loaded from parent loader
Class java.lang.Throwable loaded from parent loader
Class java.io.IOException loaded from parent loader
Class java.io.InputStream loaded from parent loader
Class java.io.FileInputStream loaded from parent loader
Class java.io.BufferedInputStream loaded from parent loader
Class java.io.DataInputStream loaded from parent loader
Class java.lang.String loaded from parent loader

引数を設定しない場合も、
run:
[java] Running in same VM chkxml
force loading chkxml
Finding class chkxml

となるだけで同じです。

ちなみに、java chkxml では、正常に動作します。

スキルアップ/キャリアアップ(JOB@IT)