Муравей скопировать jar classpath в каталог - PullRequest
7 голосов
/ 09 декабря 2010

Я уверен, что об этом уже спрашивали, или это довольно просто. Но по какой-то причине я не могу заставить это работать. Я хочу использовать ant для копирования ${build.classpath} (который содержит список jar-файлов, разделенных двоеточиями) в ${output.dir}/myapp/WEB-INF/lib.

У меня есть это прямо сейчас, и, похоже, оно не работает:

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

Он обрабатывает весь путь к классам как один файл. Как мне заставить это работать?

Ответы [ 3 ]

12 голосов
/ 09 декабря 2010

Руководство Ant по задаче копирования содержит ответ на вашу проблему.Один из примеров фрагментов, которые он предоставляет:

Соберите все элементы из текущей настройки CLASSPATH в каталог назначения, сгладив структуру каталога.

<copy todir="dest" flatten="true">
  <path>
    <pathelement path="${java.class.path}"/>
  </path>
</copy>
1 голос
/ 09 декабря 2010

Я думаю, что-то вроде этого должно работать:

<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" />

0 голосов
/ 09 декабря 2010

Я думаю, вы должны поместить все файлы jar, разделенные двоеточиями, в одну корневую папку. Если это невозможно, создайте отдельное задание, в котором эти файлы JAR помещаются в одну папку (может быть временным). И присвойте ${build.classpath} этой папке. Используйте <fileset dir="${build.classpath}"/> в вашем предложении копирования.

Надеюсь, это должно помочь.

...