मैं तीन मॉड्यूल core
, utils
और test-utils
Java9 मल्टी मॉड्यूल Maven परियोजना टेस्ट निर्भरता
कोर के साथ एक बहु मॉड्यूल Maven परियोजना निम्नलिखित निर्भरता परिभाषा
<dependency>
<groupId>my.project</groupId>
<artifactId>utils</artifactId>
</dependency>
<dependency>
<groupId>my.project</groupId>
<artifactId>test-utils</artifactId>
<scope>test</scope>
</dependency>
मैं जावा 9 module-info.java
जोड़ लिया है है है सभी तीन मॉड्यूल और core
के लिए परिभाषाएं इस तरह दिखती हैं:
module my.project.core {
requires my.project.utils;
}
हालांकि मैं परीक्षण निष्पादन के दौरान test-utils
कक्षाओं को देखने में सक्षम होने के लिए core
की परीक्षा कक्षाओं को कैसे प्राप्त कर सकता हूं, यह नहीं समझ सकता। जब maven-surefire-plugin
परीक्षण चलाने का प्रयास करता है तो मुझे कक्षा नहीं मिलती है।
अगर मैं जोड़ने के एक requires my.project.testutils;
core
करने के module-info.java
:
module my.project.core {
requires my.project.utils;
requires my.project.testutils; //test dependency
}
फिर संकलन समय पर मुझे लगता है कि my.project.testutils
मॉड्यूल नहीं पाया जा सकता है (शायद क्योंकि यह केवल एक परीक्षण निर्भरता के रूप में लाया गया है कोई त्रुटि मिलती है)।
जावा 9 मॉड्यूलर दुनिया में परीक्षण निर्भरताओं के साथ कोई कैसे काम करता है? स्पष्ट कारण के लिए मैं नहीं चाहता कि मेरा मुख्य कोड परीक्षण निर्भरताओं में खींचें। क्या मैं कुछ भूल रहा हूँ?
मैं मैवेन मैवेन नहीं हूं और मैंने Surefire प्लगइन का उपयोग नहीं किया है, लेकिन 'मॉड्यूल-info.java' दोनों' आवश्यक 'के साथ निश्चित रूप से गलत दिशा है। आम तौर पर, जावा 9 में, परीक्षणों को 'पैचिंग' द्वारा मॉड्यूल द्वारा सुविधा प्रदान की जाती है (मेवेन और ग्रैडल इस सार को दूर करते हैं)। एक और नोट पर, यह स्पष्ट नहीं है कि आपने इस दस्तावेज़ को फिर से देखा है: टूलचेन्स? - http://maven.apache.org/surefire/maven-surefire-plugin/java9.html –
यह Surefire प्लगइन का उपयोग नहीं करता है, न ही 'test' scope (इसलिए मैं इसे एक उत्तर के रूप में नहीं लिखूंगा), लेकिन अगर यह मदद करता है, तो यहां मैवेन का उपयोग करके एक छोटा जावा 9 उदाहरण है - https://github.com/codetojoy/WarO_Java_9_Maven –
@MichaelEaster पैचिंग मॉड्यूल पर हिस्सा सही है, लेकिन टूलचेन भाग प्रश्न से असंबंधित प्रतीत होता है। – nullpointer