tôi có một dự án maven đa mô-đun với ba mô-đun core
, utils
và test-utils
Java9 Multi-đun Maven Dự án thử nghiệm Dependencies
Core có sự phụ thuộc sau đây định nghĩa
<dependency>
<groupId>my.project</groupId>
<artifactId>utils</artifactId>
</dependency>
<dependency>
<groupId>my.project</groupId>
<artifactId>test-utils</artifactId>
<scope>test</scope>
</dependency>
Tôi đã thêm Java 9 module-info.java
các định nghĩa cho cả ba mô-đun và core
giống như sau:
module my.project.core {
requires my.project.utils;
}
Tuy nhiên tôi không thể tìm ra cách để có được các lớp kiểm tra của core
để có thể xem các lớp học test-utils
trong quá trình thực hiện kiểm tra. Khi maven-surefire-plugin
chạy thử nghiệm, tôi không tìm thấy lớp học.
Nếu tôi thêm một requires my.project.testutils;
-core
's module-info.java
:
module my.project.core {
requires my.project.utils;
requires my.project.testutils; //test dependency
}
Sau đó, tại thời gian biên dịch tôi nhận được một lỗi mà các module my.project.testutils
không thể được tìm thấy (có lẽ vì nó chỉ đưa vào như một sự phụ thuộc kiểm tra).
Làm cách nào để làm việc với các phụ thuộc thử nghiệm trong thế giới mô-đun Java 9? Vì lý do rõ ràng của tôi không muốn mã chính của tôi để kéo phụ thuộc kiểm tra. Tui bỏ lỡ điều gì vậy?
Tôi không phải là Maven Maven và chưa sử dụng plugin Surefire, nhưng 'module-info.java' với hai' require' chắc chắn là hướng sai. Nói chung, trong Java 9, các bài kiểm tra được tạo điều kiện bằng cách 'vá' một mô-đun (Maven và Gradle có xu hướng trừu tượng hóa nó đi). Trên một lưu ý khác, nó không rõ ràng nếu bạn đã thấy tài liệu này lại: toolchains? - http://maven.apache.org/surefire/maven-surefire-plugin/java9.html –
Điều này không sử dụng plugin Surefire, cũng không phải phạm vi 'test' (vì vậy tôi sẽ không viết nó làm câu trả lời), nhưng trong trường hợp điều này giúp, đây là một ví dụ Java9 nhỏ sử dụng Maven - https://github.com/codetojoy/WarO_Java_9_Maven –
@MichaelEaster Phần trên mô-đun vá là chính xác ở đó, nhưng phần toolchain dường như không liên quan đến câu hỏi. – nullpointer