Ant 将类路径 jar 复制到目录

发布于 2024-10-06 22:14:35 字数 359 浏览 9 评论 0原文

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

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

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

它将整个类路径视为一个文件。我该如何让它发挥作用?

I'm sure this has either been asked before or is pretty straightforward. But for whatever reason, I cannot seem to make it work. I want to use ant to copy the ${build.classpath} (which contains a colon separated list of jars) to the ${output.dir}/myapp/WEB-INF/lib.

I have this right now and it doesn't seem to work:

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

It treats the whole classpath as one file. How do I get this to work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱的那么颓废 2024-10-13 22:14:35

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

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

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

The Ant Manual on the copy task contains the answer for your problem. One of the example snippets it provides:

Collect all items from the current CLASSPATH setting into a destination directory, flattening the directory structure.

<copy todir="dest" flatten="true">
  <path>
    <pathelement path="${java.class.path}"/>
  </path>
</copy>
风苍溪 2024-10-13 22:14:35

我认为这样的想法应该可行:

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

或者在包含中使用通配符:

I think somethink like this should work:

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

or with wildcard in include: <include name="**/*.jar" />

暖风昔人 2024-10-13 22:14:35

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

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

I think you should put all your colon separated jar files to one root folder. If it is not possible then create a separate task that put those jar files into one folder(may be temporary). And assign ${build.classpath} to that folder. Use <fileset dir="${build.classpath}"/> in your copy clause.

I hope, it should help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文