В настоящее время я работаю над плагином Maven, который использует JAXB. Проблема в том, что я запускаю чистую установку в IntelliJ или в консоли, я не получаю таких же результатов. JAXB читает XML-файл, закодированный в UTF-8, который содержит специальные символы.Проблема с кодировкой при создании с mvn
В IntelliJ эти символы читаются без каких-либо проблем. Но в консоли эти символы заменяются символом '?' (Я вижу это, если я делаю sysout).
Я нашел источник моей проблемы, но я не понимаю, и я не знаю, как решить эту проблему: когда IntelliJ работает MVN, это добавляет дополнительный параметр -Dfile.encoding=UTF-8
java -classpath /usr/share/maven/boot/plexus-classworlds-2.4.jar -Dclassworlds.conf=/usr/share/maven/bin/m2.conf -Dmaven.home=/usr/share/maven -Dfile.encoding=UTF-8 org.codehaus.plexus.classworlds.launcher.Launcher clean install
Когда Я бегу МВН в командной строке, можно добавить дополнительный параметр, но он появится после имя класса:
java -classpath /usr/share/maven/boot/plexus-classworlds-2.4.jar -Dclassworlds.conf=/usr/share/maven/bin/m2.conf -Dmaven.home=/usr/share/maven org.codehaus.plexus.classworlds.launcher.Launcher -Dfile.encoding=UTF-8 clean install
в обоих случаях, если я SYSOUT содержание System.getProperty("file.encoding")
, я получаю такое же значение «UTF -8 ", bu другое поведение.
Конечно, я настроил мой pom.xml правильно используя свойство как это:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Я также попытался добавить второе свойство с именем «file.encoding», но это не помогает.
Мой вопрос: почему позиция этого системного свойства изменяет поведение моей программы и как я могу исправить свою проблему при запуске mvn из командной строки?
Заранее спасибо.
Ваш код, который использует JAXB работает во время сборки Maven, правильно? Кроме того, почему вы считаете, что эти символы читаются неправильно? Возможно, они просто не могут быть представлены в консольном выпуске. – axtavt
Да, он работает во время сборки Maven. Я уверен, что эти символы читаются неправильно, потому что я использую объекты, не подверженные JAXB, для создания выходных файлов. Эти файлы верны, если они сгенерированы внутри IntelliJ, но не корректны при создании с консоли. Кроме того, если я запустил правильную команду с консоли, я могу видеть правильные символы на выходе консоли :) –
Дубликат http: // stackoverflow.com/questions/1431008 –