※ ChatGPTを利用し、要約された質問です(原文:外部ソースへのリンクを含むソースのbuild.xmlの書き方は?)
外部ソースへのリンクを含むソースのbuild.xmlの書き方は?
このQ&Aのポイント
Eclipseで2つのプロジェクト(Lib、Tool)のビルドについて、build.xmlの書き方とエラー解決方法を教えてください。
ToolプロジェクトはLibの内容を使用しており、ビルド時にLibのソースへのリンクを設定していますが、antを使用してビルドする方法を知りたいです。
現在、build.xmlを実行するとLibの内容を参照する際にエラーが発生しています。エラーの解決方法を教えてください。
外部ソースへのリンクを含むソースのbuild.xmlの書き方は?
現在、Eclipseで2つのプロジェクト(Lib、Toolとします)を作成しており、ToolはLibに定義された内容を用いています。
Toolは私の担当ですがLibは別の人が担当しており、まだ内容変更の可能性があるため、ソースのコピーはせず、Toolのプロジェクトの設定にて、Libのソースへのリンクを設定しました。
これでToolの(Eclipseのメニューによる)ビルドはできるようになったのですが、これをantでビルドしたいとき、build.xmlをどのように書けばよいのかわからず困っています。
Toolのビルドに先立ってLibをビルドしたいですが、Tool側にソースがないのでbuild.xmlにどう書けばよいのやら・・・という状態です。
(できるだけ「自分の環境でしか動かない」という書き方はしたくないですし。)
どなたか、何かご存知ないでしょうか?
皆様の知識やお知恵を貸していただければと思います。
以下にbuild.xmlの一部を抜粋します。
-----------------------------------
<?xml version="1.0" encoding="utf-8"?>
<project name="tool" basedir=".">
<!-- ====================================================== -->
<!-- set properties for this build -->
<!-- ====================================================== -->
<property name="bin" value="bin"/>
<property name="dist" value="dist"/>
<property name="src" value="WEB-INF/src" />
<property name="lib" value="WEB-INF/lib" />
<!-- ====================================================== -->
<!-- make WAR -->
<!-- ====================================================== -->
<target name="compile" depends="init">
<!-- compile -->
<javac srcdir="${src}"
destdir="${bin}"
includes="hoge/tool/*.java, hoge/util/*.java">
<classpath>
<fileset dir="${lib}">
<include name="*.jar"/>
</fileset>
</classpath>
</javac>
<!-- make jar -->
<jar destfile="${dist}/tool.jar"
basedir="${bin}"
update="true">
</jar>
<!-- make war -->
<war destfile="${dist}/tool.war" webxml="WEB-INF/web.xml">
<fileset dir="." includes="index.jsp, error.jsp"/>
<lib dir="${lib}" includes="*.jar"/>
<lib dir="${dist}" includes="tool.jar"/>
<classes dir="${src}" includes="log4j.xml"/>
</war>
</target>
-----------------------------------
このままantを実行すると、Libの内容を参照している箇所でパッケージが見つからないとかシンボルが解決できないといったエラーが出ます。
以下にエラーを抜粋します。
-----------------------------------
Buildfile: C:\eclipse_workspace\Tool\build.xml
init:
compile:
[javac] Compiling 9 source files to C:\eclipse_workspace\Tool\bin
[javac] C:\eclipse_workspace\Tool\WEB-INF\src\hoge\tool\Decoder.java:3: パッケージ hoge.lib は存在しません。
[javac] import hoge.lib.HogeException;
[javac] ^
(以下省略)
-----------------------------------
お礼
やはり、Lib側でビルドして(JARを作って)もらって・・・というのが一番妥当な解決方法なのですね。 担当者と話し合って、この方法を採れるようにしようと思います。 有難うございました。