Ant copy classpath jar到目录

时间:2010-12-09 03:47:18

标签: java ant copy classpath

我确信这个问题要么已经被问过,要么非常简单。但无论出于何种原因,我似乎无法使其发挥作用。我想使用ant将${build.classpath}(包含以冒号分隔的jar列表)复制到${output.dir}/myapp/WEB-INF/lib

我现在有这个,但它似乎不起作用:

<copy toDir="${output.dir}/myapp/WEB-INF/lib">
  <fileset file="${build.classpath}" />
</copy>

它将整个类路径视为一个文件。我如何让它工作?

3 个答案:

答案 0 :(得分:12)

复制任务上的Ant手册包含问题的答案。它提供的示例片段之一:

  

将当前CLASSPATH设置中的所有项目收集到目标目录中,展平目录结构。

<copy todir="dest" flatten="true">
  <path>
    <pathelement path="${java.class.path}"/>
  </path>
</copy>

答案 1 :(得分:1)

我认为这样的事情应该有效:

<copy todir="${output.dir}/myapp/WEB-INF/lib" verbose="yes" flatten="yes" failonerror="no">    
   <fileset dir="${build.classpath}">    
      <include name="*.jar" />    
   </fileset>    
</copy>

或包含中的通配符:<include name="**/*.jar" />

答案 2 :(得分:0)

我认为你应该将所有冒号分隔的jar文件放到一个根文件夹中。如果不可能,则创建一个单独的任务,将这些jar文件放入一个文件夹(可能是临时的)。并将${build.classpath}分配给该文件夹。在复制条款中使用<fileset dir="${build.classpath}"/>

我希望,它应该有所帮助。