के लिए विभिन्न मेवेन कंपाइलर संस्करण मैं अपने मुख्य कोड के लिए जावा टेस्ट कोड और जावा 1.4 के लिए जावा 5 का उपयोग करने के लिए मेवेन कंपाइलर को कैसे कॉन्फ़िगर कर सकता हूं?परीक्षण और मुख्य
उत्तर
यदि आप प्रासंगिक जावा संस्करण का अनुपालन सेट करना चाहते हैं, तो आप प्रत्येक निष्पादन के लिए कंपाइलर प्लगइन को कॉन्फ़िगर कर सकते हैं। मान लीजिए मैवेन आपके द्वारा निर्दिष्ट उच्चतम संस्करण के रूप में कम से कम एक जेडीके का उपयोग कर रहा है। गुण का उपयोग कर आप कमांडलाइन पर या एक बच्चे में है कि विन्यास ओवरराइड कर सकते हैं अगर जरूरत:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${compileSource}</source>
<target>${compileSource}</target>
</configuration>
<executions>
<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<source>${testCompileSource}</source>
<target>${testCompileSource}</target>
</configuration>
</execution>
</executions>
</plugin>
...
<properties>
<compileSource>1.4</compileSource>
<testCompileSource>1.5</testCompileSource>
</properties>
आप अलग अलग कम्पाइलरों के उपयोग से मतलब हैं, कि थोड़ा और अधिक शामिल है। क्योंकि आपको जेडीके के पथ और आप किस कंपाइलर संस्करण का उपयोग कर रहे हैं, को निर्दिष्ट करने की आवश्यकता है। फिर इन गुणों में परिभाषित किया जा सकता है। हालांकि आप उन्हें अपने settings.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${compileSource}</source>
<target>${compileSource}</target>
<executable>${compileJdkPath}/bin/javac</executable>
<compilerVersion>${compileSource}</compilerVersion>
</configuration>
<executions>
<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<source>${testCompileSource}</source>
<target>${testCompileSource}</target>
<executable>${testCompileJdkPath}/bin/javac</executable>
<compilerVersion>${testCompileSource}</compilerVersion>
</configuration>
</execution>
</executions>
</plugin>
...
<properties>
<compileSource>1.4</compileSource>
<testCompileSource>1.5</testCompileSource>
<compileJdkPath>path/to/jdk</compileJdkPath>
<testCompileJdkPath>path/to/test/jdk<testCompileJdkPath>
</properties>
नोट में परिभाषित करने के लिए चाहते हो सकता है यह समझ बनाने के हो सकता है इतना है कि अपने सामान्य बनाता गुण पर भरोसा नहीं करते संकलक विन्यास प्रोफाइल में, प्रत्येक JDK आप समर्थन के लिए एक, परिभाषित करने के लिए सेट किया जा रहा है
इसके अलावा, Maven 3.x में , आप fork
पैरामीटर शामिल करने के लिए जब निष्पादन को निर्दिष्ट की जरूरत है, जैसे:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<executions>
<execution>
<id>default-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<fork>true</fork>
<executable>${testCompileJdkPath}/bin/javac</executable>
<source>1.8</source>
<target>1.8</target>
</configuration>
</execution>
</executions>
</plugin>
मैं स्वीकार किए जाते हैं जवाब संकलन जावा 7 स्रोत और जावा 8 के साथ कोई किस्मत ने maven-compiler-plugin
, संस्करण 3.5.1 का उपयोग कर परीक्षण स्रोत। चूंकि संकलन प्लगइन दोनों मुख्य और परीक्षण स्रोतों के लिए स्रोत/लक्ष्य पैरामीटर का उपयोग करता है।
लेकिन मुझे पता चला, परीक्षण स्रोत और लक्ष्य के लिए अलग कॉन्फ़िगरेशन पैरामीटर हैं।
मेरे लिएतो समाधान है कि काम किया
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<testSource>1.8</testSource>
<testTarget>1.8</testTarget>
</configuration>
</plugin>
</plugins>
</build>
- 1. परीक्षण कोड और मुख्य कोड
- 2. बूस्ट इकाई परीक्षण मुख्य समारोह?
- 3. यूनिट परीक्षण फ्रेमवर्क - मुख्य विशेषताएं
- 4. पृष्ठभूमिवर्कर और मुख्य थ्रेड
- 5. शून्य मुख्य और int मुख्य के बीच अंतर?
- 6. int मुख्य() और int मुख्य (शून्य) के बीच अंतर?
- 7. दो धागे और मुख्य कार्यक्रम
- 8. आवश्यकताएँ जेएस और डेटा-मुख्य
- 9. फोनगैप एप्लिकेशन का आईपैड परीक्षण - मुख्य विधि में समस्या
- 10. अचूक src में परीक्षण लॉन्च नहीं है/मुख्य/जावा
- 11. निर्भरता और परीक्षण निर्भरता
- 12. मुख्य
- 13. मुख्य()
- 14. मुख्य
- 15. मुख्य
- 16. "फ़ज़ परीक्षण" और "बंदर परीक्षण"
- 17. मुख्य
- 18. मुख्य()
- 19. मुख्य स्ट्रिंग वैरिएबल से मुख्य()
- 20. RuntimeError: मुख्य थ्रेड मुख्य लूप
- 21. मुख्य भंडार है जब मुख्य भंडार एसवीएन
- 22. यूनिट परीक्षण और परीक्षण डेटाबेस का उपयोग
- 23. सीएमके और सीटीएस्ट: परीक्षण परीक्षण नहीं करता
- 24. यूनिट परीक्षण और स्वीकृति परीक्षण पर्याप्त हैं?
- 25. ऑडियो सर्विसेजप्लेसिस्टम साउंड और मुख्य धागा
- 26. pygtk दो खिड़कियां, पॉपअप और मुख्य
- 27. अपवाद संचालन से पहले और मुख्य
- 28. मुख्य कार्यक्रम और साझा लाइब्रेरी __static_initialization_and_destruction_0
- 29. क्यूटी मोडल संवाद और मुख्य प्रक्रिया
- 30. पृष्ठभूमि, अग्रभूमि और मुख्य धागे क्या हैं?
जब मैं परीक्षण के लिए स्रोत और लक्ष्य संस्करण '1.8' और' मुख्य कोड के लिए 1.7' साथ पहला उदाहरण प्रयास, संकलन सफल होता है जब 'mvn compile' था 'एमवीएन टेस्ट-कंपाइल' से अलग से चलाया जाता है, लेकिन 'एमवीएन संकलन परीक्षण-संकलन' जैसे कमांडों में, या अधिक आसानी से, 'एमवीएन टेस्ट-कंपाइल' (जहां 'संकलन' खींचा जाता है) ' 'प्राथमिकता लेता है, और यह विफल रहता है। –
समाधान यह है कि यह ' डिफ़ॉल्ट-परीक्षण कॉम्पाइल 'है जो डिफ़ॉल्ट व्यवहार को ओवरराइड करता है। उपरोक्त उत्तर एक अतिरिक्त निष्पादन जोड़ता है। –
निष्पादन के बारे में समझ की कमी को क्षमा करें। क्या यह मुख्य अनुप्रयोग कोड को उसी लक्ष्य संस्करण में संकलित करने के लिए परीक्षण कोड के रूप में परीक्षण कोड के रूप में संकलित किया जाएगा? या मुख्य और परीक्षण स्रोतों के पास विभिन्न लक्ष्य बाइटकोड संस्करण होंगे? –