ठीक नहीं है, यह एक अजीब समस्या है: मेरे पास जावा परीक्षण फ़ाइल है जो कुछ यूटीएफ -8 अक्षरों का उपयोग करती है। जब मैंने इसे Maven के साथ संकलन, का उपयोग करएमवीएन संकलन यूटीएफ -8 एन्कोडिंग
mvn -Dfile.encoding=UTF-8 -Dproject.build.sourceEncoding=UTF-8 test
(इस प्रकार दोनों कथित मंच एन्कोडिंग और स्रोत फ़ाइल एन्कोडिंग की स्थापना, maven platform encoding देखें) जब मैं
साथ फ़ाइल संकलन मैं की तरह[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building project
[INFO] task-segment: [test]
[INFO] ------------------------------------------------------------------------
[INFO] [resources:resources {execution: default-resources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory path/src/main/resources
[INFO] [compiler:compile {execution: default-compile}]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources {execution: default-testResources}]
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory path/src/test/resources
[INFO] [compiler:testCompile {execution: default-testCompile}]
[INFO] Compiling 7 source files to path/target/test-classes
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
path/to/file.java:[42,23] unclosed character literal
path/to/file.java:[42,25] ';' expected
path/to/file.java:[42,26] unclosed character literal
path/to/file.java:[47,23] unclosed character literal
path/to/file.java:[47,25] illegal character: \182
path/to/file.java:[47,26] unclosed character literal
कुछ पाने
path/to/file.java:42: unclosed character literal
illegalCharEnc('ä');
^
path/to/file.java:42: ';' expected
illegalCharEnc('ä');
^
path/to/file.java:42: unclosed character literal
illegalCharEnc('ä');
^
path/to/file.java:47: unclosed character literal
illegalCharDec('ö');
^
path/to/file.java:47: illegal character: \182
illegalCharDec('ö');
^
path/to/file.java:47: unclosed character literal
illegalCharDec('ö');
^
6 errors
:
javac path/to/file.java
मैं मिलती-जुलती त्रुटियां मिल
अब जब मैं बजाय
javac -encoding UTF-8 path/to/file.java
उपयोग करते हैं, मैं क्योंकि लापता निर्भरता cannot find symbol
त्रुटियों मिलता है। तो मुझे लगता है कि समस्या यह है कि परीक्षणों को संकलित करते समय javac
मेवेन में यूटीएफ -8 विकल्प के साथ नहीं कहा जाता है (ध्यान दें कि Using 'UTF-8' encoding to copy filtered resources.
compiler:testCompile
-section में अनुपलब्ध है)। क्या यह निष्कर्ष सही है? क्या मैं कुछ भूल रहा हूँ? क्या यह एक ज्ञात समस्या है? मैं इसके बारे में कुछ भी कर सकता हूँ? जाहिर है, मेरे सिस्टम पर प्लेटफॉर्म एन्कोडिंग यूटीएफ -8 नहीं है, लेकिन मैं वर्तमान में इसे बदल नहीं सकता हूं।
प्लेटफ़ॉर्म के डिफ़ॉल्ट एन्कोडिंग को यूटीएफ -8 में सेट करने से समस्या हल हो गई। मुझे लगता है कि यह मेवेन में एक बग है। – roesslerj
आप किस संकलक-प्लगइन का उपयोग करते हैं? क्या आपने प्रोजेक्ट को परिभाषित किया है। बिल्डिंग। अपने पोम में सोर्सिंग करना (ऐसा लगता है कि आपने नहीं किया) – khmarbaise
कंपाइलर-प्लगइन का संस्करण पोम में निर्दिष्ट नहीं है, मेवेन संस्करण "2.2.1 (रेडियन -4)" है। मैंने पोम में 'project.build.SourceEnconding' प्रॉपर्टी निर्दिष्ट करने का प्रयास किया, कुछ भी नहीं बदला। और यह वैसे भी कमांड लाइन में '-Dproject.build.sourceEncoding =' देने जैसा ही होना चाहिए। – roesslerj