maven antrun копирует ресурсы в базовый целевой каталог - PullRequest
7 голосов
/ 20 июля 2010

Я изучаю, как использовать maven для своих автономных java-приложений, но я не понимаю, как сделать рекурсивное копирование всех каталогов из / src / main / resources в каталог / taget.

Iпробовал использовать antrun и плагин ресурсов, но ресурсы копируются в / target / classes, а не в /target.

Что здесь не так?

<build>
  <pluginManagement><plugin>
     <artifactId>maven-antrun-plugin</artifactId>
     <version>1.4</version>
     <executions>
      <execution>
       <phase>process-resources</phase>
       <configuration>
        <tasks>
         <copy todir="${basedir}/target">
          <fileset dir="${basedir}/src/main/resources" includes="**/*" />
         </copy>
        </tasks>
       </configuration>
       <goals>
        <goal>run</goal>
       </goals>
      </execution>
     </executions>
    </plugin>  </pluginManagement>
 </build>

Спасибо за вашу помощь.

РЕДАКТИРОВАТЬ: я бы скопировал в / target каталоги, такие как "bin", "logs", "conf", чтобы я мог протестировать приложение.и с другой задачей maven упакуйте все (jars и bin / conf / tmp dirs) в файл zip / tar.gz.

Ответы [ 2 ]

5 голосов
/ 20 июля 2010
  • Попробуйте использовать <plugins ... /> вместо <pluginManagement ... />.
  • Копирование объектов в цель для проверки кажется немного странным. Будете ли вы запускать maven каждый раз, когда вам нужно протестировать ваше приложение?
1 голос
/ 20 июля 2010

Я думаю, что вы используете maven неправильно.

Нормально, вам не нужно "копировать" ресурсы для цели.Это уже сделано maven автоматически.

Если у вас есть дополнительные ресурсы, необходимые для тестирования, вы можете добавить

<build>
   <testResources>
        <testResource>
            <directory>${basedir}/src/test/anotherKindOfResourceDir</directory>
        </testResource>
    </testResources>
<build>

И, как сказал lexicore, вы не должныиспользуйте pluginManagement.«pluginManagement», так же как и «dependencyManagement», предоставляет «шаблон», когда проект действительно использует этот плагин / имеет эту зависимость.Это означает, что добавление pluginManagement / dependencyManagement не вызовет плагин / не добавит зависимости к вашему проекту.

...