Ant (A Java based build tool)

[ 戻る | トップページに戻る ]

概要

Ant とは、Java ベースの構築ツール (make みたいなもの) 。 Tomcat のインストール等に必要。

URL

http://jakarta.apache.org/ant/ (The Jakarta Project)

インストール環境

Slackware 7.0 (Kernel 2.2.19 + glibc 2.1.2)
Plamo Linux 2.2.1 (Kernel 2.2.19 + glibc 2.2)

必要なもの

JDK 1.1 以降, JAXP

バージョン

1.3, 1.5.3-1

インストール手順 (for 1.3)

$ tar xvfz jakarta-ant-1.3-src.tar.gz
$ cd jakarta-ant-1.3
$ ./bootstrap.sh
(snip)
    [javac] Compiling 54 source files to /usr/local/src/jakarta-ant-1.3/build/classes
    [javac] 注: /usr/local/src/jakarta-ant-1.3/src/main/org/apache/tools/ant/taskdefs/optional/PropertyFile.java \
                は推奨されない API を使用またはオーバーライドしています。
    [javac] 注: 詳細については、-deprecation オプションを指定して再コンパイルしてください。
(snip)
BUILD SUCCESSFUL

Total time: 49 seconds
... Cleaning Up Build Directories
... Done Bootstrapping Ant Distribution

$ ./build.sh
# su
# ./build.sh install
Buildfile: build.xml

install:

BUILD SUCCESSFUL

Total time: 4 seconds

# exit

問題ない...のかな? ところで、どこにインストールされたのだ?? どこを探してもないぞよ (もちろんローカル (./dist) にはちゃんと出来ている) 。 マニュアル (./docs/manual/install.html) をよく読む。(^^;
...そうか。ANT_HOME の設定が必要なのね。 ~/.bashrc 等に以下の設定を追加する。
export ANT_HOME=/usr/local/ant
export PATH=$PATH:$ANT_HOME/bin

カレント Shell に設定を反映させてから、再トライ。
$ . ~/.bashrc
$ su
# ./build.sh install
(snip)
BUILD FAILED

/usr/local/src/jakarta-ant-1.3/build.xml:510: Javadoc failed: java.io.IOException: javadoc: not found
--- Nested Exception ---
java.io.IOException: javadoc: not found
        at java.lang.UNIXProcess.forkAndExec(Native Method)
        at java.lang.UNIXProcess.(UNIXProcess.java:139)
        at java.lang.Runtime.execInternal(Native Method)
        at java.lang.Runtime.exec(Runtime.java:551)
        at java.lang.reflect.Method.invoke(Native Method)
        at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:509)
        at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:329)
        at org.apache.tools.ant.taskdefs.Javadoc.execute(Javadoc.java:763)
        at org.apache.tools.ant.Target.execute(Target.java:153)
        at org.apache.tools.ant.Project.runTarget(Project.java:898)
        at org.apache.tools.ant.Project.executeTarget(Project.java:536)
        at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:213)
        at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:103)
        at org.apache.tools.ant.Target.execute(Target.java:153)
        at org.apache.tools.ant.Project.runTarget(Project.java:898)
        at org.apache.tools.ant.Project.executeTarget(Project.java:536)
        at org.apache.tools.ant.Project.executeTargets(Project.java:510)
        at org.apache.tools.ant.Main.runBuild(Main.java:421)
        at org.apache.tools.ant.Main.main(Main.java:149)

Total time: 17 seconds

むむ。どうして?? ありゃ、root になった時に $JAVA_HOME/bin へのパスが なくなっちゃってる。PATH=/sbin:/usr/sbin:/bin:/usr/bin しかない。 こーいうものだっけ?? (^^;
とりあえず逃げる。
# . ~foo/.bashrc
# ./build.sh install
(snip)
  [javadoc] /usr/local/src/jakarta-ant-1.3/build/javadocs/package-list の生成
  [javadoc] /usr/local/src/jakarta-ant-1.3/build/javadocs/help-doc.html の生成
  [javadoc] /usr/local/src/jakarta-ant-1.3/build/javadocs/stylesheet.css の生成
  [javadoc] 警告 70 個

dist:
    [mkdir] Created dir: /usr/local/ant/docs
    [mkdir] Created dir: /usr/local/ant/docs/api
     [copy] Copying 2 files to /usr/local/ant/lib
     [copy] Copying 1 file to /usr/local/ant/lib
     [copy] Copying 97 files to /usr/local/ant/docs
     [copy] Copying 352 files to /usr/local/ant/docs/api
     [copy] Copying 4 files to /usr/local/ant

BUILD SUCCESSFUL

Total time: 2 minutes 43 seconds

これで OK ...じゃなーい!! /usr/local/ant/bin/ant 等のパーミッションが -rwx------ になってて、一般ユーザ から使えなーい。よく分からんが、適当にパーミッションを与えておく。 これで、とりあえず使えるようになるかな...。
# cd /usr/local/ant/bin
# chmod go+rx ant antRun
# exit
$ /usr/local/ant/bin/ant -version
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/Main

他にもパーミッションが必要なのか。考えてみれば当り前。 マニュアルにも $ANT_HOME/bin と $ANT_HOME/lib が必要と書いてあっただわ。
$ su
# cd /usr/local/ant
# chmod a+r bin/* lib/*
# exit
$ /usr/local/ant/bin/ant -version
Ant version 1.3 compiled on August 28 2001

これで OK 。もう一点、細かい問題。
Slackware 7.0 だとデフォルトでインストールされている Xscreensaver モジュール である ant (/usr/X11R6/bin/ant) と実行ファイル名がぶつかってしまうので、 $ANT_HOME/bin を /usr/X11R6/bin の前に持って来た方がベター。こんな感じ。
export PATH=$ANT_HOME/bin:$PATH   <--- 順序を逆にする

インストール手順 (for 1.5.3)

環境変数 (ANT_HOME, PATH) の設定については、1.3 を参考に。 環境変数が設定できたらコンパイル開始。
$ tar xvfz apache-ant-1.5.3-1-src.tar.gz
$ cd apache-ant-1.5.3-1
$ ./build.sh -Ddist.dir=/usr/local/ant dist
(snip)
dist-lite:
Copying 2 files to /usr/local/ant/lib

BUILD FAILED
file:/usr/local/src/apache-ant-1.5.3-1/build.xml:770: \
     Failed to copy /usr/local/src/apache-ant-1.5.3-1/build/lib/optional.jar \
     to /usr/local/ant/lib/optional.jar due to /usr/local/ant/lib/optional.jar \
     (許可がありません) and I couldn't delete the corrupt /usr/local/ant/lib/optional.jar

Total time: 22 seconds

ふむ。どうやら root (/usr/local/ant に書き込み権限のあるユーザ) で実行する 必要があるらしい。
$ su
# ./build.sh -Ddist.dir=/usr/local/ant dist
# ./build.sh install
# exit

[ 戻る | トップページに戻る ]