2008年8月5日火曜日

Antで"WEB-INF/classes"ディレクトリを削除&作成

スズキです。

Antでビルドするときに、下記のように何も考えないでやると、
クラス/リソースファイルは"WEB-INF/classes"への
上書きとなってしまいます。

<target name="compile">
  <javac
      srcdir="${src.main}"
      destdir="${classes.main}"
      classpathref="project.classpath"
      encoding="MS932"
      debug="on"/>
  <copy todir="${classes.main}">
    <fileset dir="${resources.main}"/>
  </copy>
</target>

まあ、上書きでもほとんど問題にならないのですが、
たまに、ファイル削除して、他のファイルが
そのファイルを参照し続けている場合、
上記のビルド環境ではファイルが残っているため問題ないが、
他の環境にデプロイしたときに、動かない!
ってことになります。

なので、下記のように、ビルド・リソースコピー前に
"WEB-INF/classes"の削除&作り直しを
念のため行うようにしました。

<target name="compile">
  <!-- 削除 -->
  <delete dir="${classes.main}"/>
  <!-- 作成 -->
  <mkdir dir="${classes.main}"/>
  <javac
      srcdir="${src.main}"
      destdir="${classes.main}"
      classpathref="project.classpath"
      encoding="MS932"
      debug="on"/>
  <copy todir="${classes.main}">
    <fileset dir="${resources.main}"/>
  </copy>
</target>

では、PowerDNSに戻ります。

--
http://suz-lab.blogspot.com/

0 コメント: