2010-07-20 28 views
6

Tôi đang học cách sử dụng maven cho các ứng dụng java độc lập của mình nhưng tôi không hiểu cách sao chép tất cả các thư mục từ thư mục/src/main/resources đến/taget .maven antrun sao chép tài nguyên vào thư mục đích cơ sở

Tôi đã thử sử dụng plugin antrun và tài nguyên, nhưng tài nguyên được sao chép vào/target/classes và không được chuyển đến/target.

Có gì sai ở đây?

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

Cảm ơn sự giúp đỡ của bạn.

EDIT: Tôi sẽ sao chép/nhắm mục tiêu các thư mục như "bin", "nhật ký", "conf", để tôi có thể thử nghiệm ứng dụng. và, với một nhiệm vụ maven khác, gói mọi thứ (jars và bin/conf/tmp dirs) vào một tệp zip/tar.gz.

Trả lời

4
  • Hãy thử với <plugins ... /> thay vì <pluginManagement ... />.
  • Sao chép mọi thứ để nhắm mục tiêu để thử nghiệm nó có cảm giác hơi lạ. Bạn sẽ chạy maven mỗi khi bạn cần phải kiểm tra ứng dụng của bạn?
+0

Cuối cùng, nó hoạt động! Tôi đã phát điên vì điều đó (tôi phải điều tra về sự khác nhau giữa plugin và pluginmanagement) Tôi cũng sẽ sử dụng maven để làm unitTests, nhưng tôi không sao chép tài nguyên (một tập tin tĩnh) mỗi lần. Cảm ơn sự giúp đỡ của bạn. – Antonio

0

Tôi nghĩ bạn đang sử dụng maven theo cách sai.

Bạn không cần phải sao chép tài nguyên để nhắm mục tiêu. Nó được thực hiện bởi maven tự động rồi.

Nếu bạn có một số tài nguyên bổ sung mà là cần thiết trong việc kiểm tra, bạn có thể thêm

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

Và, như đã nói bởi lexicore, bạn không cho rằng sử dụng pluginManagement. "pluginManagement", giống như "dependencyManagement", cung cấp "mẫu" khi dự án thực sự sử dụng plugin đó/có phụ thuộc đó. Điều đó có nghĩa là, thêm pluginManagement/dependencyManagement sẽ không kích hoạt bất kỳ plugin nào/sẽ không thêm bất kỳ sự phụ thuộc nào vào dự án của bạn.

+0

Cảm ơn bạn đã trả lời của bạn, bây giờ tôi biết sự khác biệt giữa "pluginmanagement" và "plugin" – Antonio

+0

Tôi nghĩ rằng vấn đề chính không thực sự là pluginManagement vs plugin. Tôi nghĩ bạn không cần phải làm như vậy trong việc chuẩn bị tài nguyên kiểm tra đơn vị –

Các vấn đề liên quan