2010-07-20 10 views
6

Uczę się, jak używać programu maven w moich autonomicznych aplikacjach java, ale nie rozumiem, jak wykonać rekurencyjną kopię wszystkich katalogów z/src/main/resources do katalogu/taget .maven antrun skopiuj zasoby do podstawowego katalogu docelowego

Próbowałem użyć wtyczki antrun i zasobów, ale zasoby są kopiowane do/target/classes, a nie do/target.

Co jest nie tak?

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

Dzięki za pomoc.

EDYCJA: Chciałbym skopiować katalogi docelowe, takie jak "bin", "logi", "conf", więc mogę przetestować aplikację. i, przy pomocy innego zadania maven, spakuj wszystko (słoiki i bin/conf/tmp dirs) do pliku zip/tar.gz.

Odpowiedz

4
  • Wypróbuj z <plugins ... /> zamiast z <pluginManagement ... />.
  • Kopiowanie rzeczy do celu, aby przetestować, wydaje się nieco dziwne. Czy będziesz prowadził specjalistę za każdym razem, gdy będziesz musiał przetestować swoją aplikację?
+0

Wreszcie działa! Z tego powodu oszalałem (muszę zbadać różnice między wtyczką a wtyczką) Użyję maven także do unitTests, ale nie będę kopiować zasobów (pliki statyczne) za każdym razem. Dziękujemy za pomoc. – Antonio

0

Myślę, że używasz maven w niewłaściwy sposób.

Normalnie nie ma potrzeby "kopiowania" zasobów do miejsca docelowego. Robi to automatycznie już maven.

Jeśli masz jakieś dodatkowe zasoby, które są potrzebne do testowania, można dodać

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

I, jak powiedział przez lexicore, nie jesteś przypuszczać, aby korzystać pluginManagement. "pluginManagement", podobnie jak "dependencyManagement", zapewnia "szablon", gdy projekt używa tej wtyczki/ma tę zależność. Oznacza to, że dodanie pluginManagement/dependencyManagement nie wyzwoli żadnej wtyczki/nie doda żadnej zależności do twojego projektu.

+0

Dziękuję również za odpowiedź, teraz znam różnicę między "pluginmanagement" i "plugin" – Antonio

+0

Myślę, że głównym problemem nie jest tak naprawdę pluginManagement vs plugin. Myślę, że nie musisz robić czegoś takiego w przygotowywaniu testów jednostkowych –

Powiązane problemy