ページ更新: 2005-09-12 (月) (4876日前)
[編集]

プロジェクトのプロパティ -> ビルダーで「Antビルド」を追加したときのメモ。(2005-09-12) #

  • 「プロジェクト」→「クリーン」実行時にプロジェクトディレクトリのbuild.xmlのsampleターゲットを実行する例。
  • sampleターゲットの仕様
    • なんらかのJavaソースコードを生成する
    • Javaビルダより前に実行する必要がある
    • 少々時間がかかるので「自動ビルド」時点では実行されたくない
[編集]

メイン タブ #

プロジェクトのディレクトリから相対でビルドファイルを指定するときはproject_loc変数を使う。

メインタグ - ビルド・ファイルの例

${project_loc}/build.xml

メインタグ - 基底ディレクトリーの例

${project_loc}
[編集]

更新 タブ #

  • 完了時にリソースを更新
  • 選択されたリソースを含むプロジェクト
  • 再帰的にサブフォルダーを組み込む
[編集]

ターゲット タブ #

  • 内部ターゲットを非表示
[編集]

ビルド・オプション #

  • "クリーン"の後
[編集]

設定後の.projectファイル #

Eclipse 3.1 .projectファイル

   <buildCommand>
     <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
     <triggers>full,</triggers>          ★
     <arguments>
       <dictionary>
         <key>LaunchConfigHandle</key>
         <value>&lt;project&gt;/.externalToolBuilders/sample.launch</value>
       </dictionary>
     </arguments>
   </buildCommand>
  • Eclipse 3.1では★がない場合、「毎回 .projectが更新される(よってCVSで管理するとき困る)」「なぜかAntが2回実行される」
  • Eclipse 3.0.1では★は生成されないが、これを追加してもエラーにならないので影響なし。
[編集]

設定後のsample.launchファイル #

Eclipse 3.0.1 sample.launchファイル

<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="true"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_HIDE_INTERNAL_TARGETS" value="true"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,"/>
<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY" value="${project_loc}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${project_loc}/build.xml"/>
<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>    ★
<booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_ANT_TARGETS" value="sample,"/>
</launchConfiguration>
  • Eclipse 3.1では★がない場合、「毎回 .sample.launch更新される(よってCVSで管理するとき困る)」「なぜかAntが2回実行される」
  • Eclipse 3.0.1では★は生成されないが、これを追加してもエラーにならないので影響なし。
[編集]

Antメモリリーク修正 (未確認) #

WOProject: Compatibilty matrix
http://www.objectstyle.org/woproject/compatibilty_matrix.html

  • Patched org.eclipse.core.ant plugin
  • WO Project (WebObject plugin)
[編集]

eclipse 2.1.1 (Ant 1.5.3), J2SDK 1.4.2 で javahタスクのエラー #

J2SDK 1.4.2 を使っているとき、eclipse2.1.1付属のAnt1.5.3でjavahタスクを使うと、次のエラーが出る。

Buildfile: C:\workspace\project\build.xml
javah:
BUILD FAILED: java.lang.NoSuchMethodError:
com.sun.tools.javah.Main.<init>([Ljava/lang/String;)V

J2SDK 1.4.1 ではこのエラーはでない。

エラーの原因は、Antがjavahタスクを呼び出すときに使うcom.sun.tools.javah.Mainクラスの仕様が J2SE 1.4.1 -> 1.4.2 で変更されたのが原因。

Ant1.5.4以後でこの変更に対応している。(詳細は未確認)

そこで、eclipseのAntもAnt1.5.4に入れ替えた。

具体的には、C:\eclipse\plugins\org.apache.ant_1.5.3 ディレクトリの ant.jarとoptional.jarを、それぞれAnt1.5.4のものに入れ替えた。

(Ant 1.6には入れ替えなかった。これはjarの構成が1.5.*とかなり異なるので)

なお、最新のpluginは次のページにあるが、ディレクトリ構成も異なる(binとlibディレクトリがある)ことと、コメントから、eclipse 3.0用だと思われる。

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.releng.basebuilder/plugins/org.apache.ant_1.5.4/