在Apache Ant中复制一个jar文件

时间:2010-04-13 00:54:54

标签: netbeans6.8 ant

我需要在构建项目时将jar文件从一个目录复制到另一个目录。陈述声明:

<copy file="${test.dir}/MyFirstTest.jar" todir="${share.path}"/>
单独构建项目时,

工作正常,但如果我清理并构建项目,我会收到一条警告,通知我尚未创建$ {test.dir} /目录。如果我正确理解我应该能够创建一个'目标'并为此操作指定依赖项,但我不确定要指定的依赖项。我是否需要使用哪一系列语句来确保无论是清理和构建项目还是仅构建项目都会出现此副本?

如果需要进一步澄清,请告诉我。

仅供参考我使用Netbeans 6.8来构建我的项目。

2 个答案:

答案 0 :(得分:2)

假设你有build,dist和javadoc文件夹在clean中执行此操作。

  <!-- Remove all output generated from this build script -->
  <target name="clean" description="Clean project">
        <delete dir="${build}" />
        <delete dir="${dist}" />
        <delete dir="${javadoc}" />
  </target>

  <!-- Initialize all elements needed for the Build -->
  <target name="init">
        <!-- Create the time stamp -->
        <tstamp />
        <!-- Create the build directory structure used by compile
        and copy the deployment descriptors into it-->
        <mkdir dir="${build}/classes" />
        <mkdir dir="${dist}" />
        <mkdir dir="${javadoc}" />
  </target>

 <!-- Write a target such as this -->
  <target name="docopy" depends="init" description="do the copy"> 
         <copy file="${test.dir}/MyFirstTest.jar" todir="${dist}"/>
  </target>

运行ant docopy时首先运行init,然后运行docopy任务。 您可以创建其中包含depends =“docopy”的其他任务,或将复制文件任务移动到init本身。

答案 1 :(得分:1)

  

如果我理解正确,我应该能够创建一个'目标'并为此操作指定依赖项,但我不确定要指定的依赖项。

好吧,如果有意义的话,可以为实际创建${share.path}的目标添加依赖项,或者如果目录不存在则引入新目标来创建目录。这通常是某种init目标。然后,添加如下依赖项:

<target name="copy-jar" depends="target-a, target-b">
    <copy file="${test.dir}/MyFirstTest.jar" todir="${share.path}"/>
</target>

您也可以在复制库之前尝试创建目录:

<mkdir dir="${share.path}" failonerror="false">
<copy file="${test.dir}/MyFirstTest.jar" todir="${share.path}"/>