2

ant build.xml を使用して単純な war ファイルをビルドしています。

<?xml version="1.0" ?> 
<project name="cellar" default="war">

  <target name="init">
    <property file="${user.home}/build.properties"/>
    <property name="app.name" value="${ant.project.name}"/>
    <property name="src.dir" location="src"/>
    <property name="lib.dir" location="lib"/>
    <property name="build.dir" location="build"/>
    <property name="dist.dir" location="dist"/>
    <property name="classes.dir" location="${build.dir}/classes"/>

    <mkdir dir="${build.dir}"/>
    <mkdir dir="${dist.dir}" />
  </target>

  <path id="classpath">
    <fileset dir="lib">
      <include name="*.jar"/>
    </fileset>
  </path>

  <target name="compile" depends="init" >
    <javac destdir="${classes.dir}" debug="true" srcdir="${src.dir}">
      <classpath refid="classpath"/>
    </javac>
  </target>

  <target name="war" depends="compile" >
    <war destfile="${dist.dir}/${app.name}.war" webxml="${src.dir}/main/webapp/WEB-INF/web.xml">
        <fileset dir="${src.dir}/main/webapp/"/>
        <lib dir="${lib.dir}"/>
        <classes dir="${classes.dir}"/>
    </war>
  </target>

  <target name="clean">
    <delete dir="${dist.dir}" />
    <delete dir="${build.dir}" />
  </target>

</project>

上記の ant build.xml は完全に機能します。ただし、パス タグで dir="lib" を dir="${lib.dir}" (fileset タグ内) に置き換えると、ビルドが失敗し、以下に示すようなエラーが発生します。

ビルドに失敗しました c:\Java\code\Cellar\build.xml:22: c:\Java\code\Cellar\${lib.dir} が存在しません。

なぜこれが起こるのか誰か知っていますか?

4

1 に答える 1