2010-06-04 35 views
11

Tôi có một dự án maven tải một tệp xslt và thực hiện phép chuyển đổi cùng với các xử lý khác trên kết quả. Thông thường khi người dùng chạy ứng dụng, người dùng cung cấp đường dẫn tệp xslt được tải. Nhưng tôi bao gồm một số tệp xslt mặc định đi kèm trong ứng dụng của tôi mà người dùng có thể sử dụng mà không tải bất kỳ tệp xslt bên ngoài nào. Tôi làm điều này bằng cách thêm chúng vào src/main/resources/xslt. Vấn đề của tôi là tôi muốn chạy thử nghiệm đối với các tệp xslt đó trong giai đoạn thử nghiệm. Làm thế nào tôi có thể đạt được điều này? Tôi có nên sao chép nội dung src/main/resources/xslt để nhắm mục tiêu/ở đâu đó và tải chúng trong mã lớp thử nghiệm của mình không? Plugin nào được sử dụng cho điều đó?Cách sử dụng tài nguyên maven cũng như tài nguyên thử nghiệm

Trả lời

17

Vấn đề của tôi là tôi muốn chạy thử nghiệm đối với các tệp xslt đó trong giai đoạn thử nghiệm. Làm thế nào tôi có thể đạt được điều này?

Không có gì để làm, target/classes là trên đường dẫn lớp kiểm tra. Chính xác hơn, các đường dẫn lớp cho các bài kiểm tra là:

  • đầu tiên target/test-classes
  • sau đó target/classes
  • sau đó dependencies

Vì vậy, các nguồn lực từ src/main/resources (được sao chép vào target/classes) có thể nhìn thấy từ các bài kiểm tra.

+0

Yep .. sau khi đăng câu hỏi tôi đã cố gắng làm điều đó một cách rõ ràng và nó hoạt động. Tôi chỉ theo ấn tượng rằng nó là một quy ước mà src/* chỉ dành cho thế hệ, xử lý và biên dịch và rằng bất kỳ giai đoạn nào sau đó chỉ nên nhìn vào các đường dẫn đích/* để thực hiện công việc của nó. Điều đó có đúng không? – Paralife

+0

@Paralife Tài nguyên của bạn được sao chép vào 'target/classes' (và tài nguyên kiểm tra được sao chép vào' target/test-classes'). Tôi đã làm rõ điều này. Nó có trả lời câu hỏi không? –

+0

Ah ok. Tôi không hiểu rằng chúng được sao chép. Tôi chỉ mặc dù src/main/resources có thể nhìn thấy từ các bài kiểm tra trực tiếp. Tôi thấy nó bây giờ. Cảm ơn. – Paralife

2

Nếu bạn đặt một tập tin foo.txt bên src/test/resources/, bạn có thể mở này qua:

// try-with-resource (Java 1.7) 
try (InputStream is = getClass().getClassLoader().getResourceAsStream("foo.txt")) { 
    // do something with is... 
} 

Bạn cũng có thể có một cái nhìn tại maven-resources-plugin.

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