2016-08-05 2 views
1

Я нашел следующий журнал в моей консоли, делая «MAVEN INSTALL» на мой проект,JAVA поддерживает платформу «Зависимая» концепция?

[INFO] Search took 70ms 
[INFO] Theme "VAADIN\themes\mytheme" updated 
[INFO] 
[INFO] --- vaadin-maven-plugin:7.5.10:compile-theme (default) @ MyUI --- 
[INFO] Updating theme VAADIN\themes\mytheme 
[INFO] Theme "VAADIN\themes\mytheme" compiled 
[INFO] 
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ MyUI --- 
[debug] execute contextualize 
[WARNING] Using platform encoding (Cp1252 actually) to copy filtered 
      resources, i.e. build is platform dependent! 
[INFO] Copying 1 resource 
[INFO] 
[INFO] --- vaadin-maven-plugin:7.5.10:resources (default) @ MyUI --- 
[INFO] auto discovered modules [com.ui.AppWidgetset] 
[INFO] 3 source files from GWT module com.ui.AppWidgetset 

Что такое «Платформа зависимый» Концепция они говорят здесь? JAVA поддерживает концепцию независимости платформы из-за JVM, поэтому какая функция JAVA (я называю эту функцию) позволяет распечатать эту строку в консоли?

Это означает, что все мои файлы зашифрованы (через SEE), если я поместил свою WAR в нешифрованную машину (если ключ отличается), то приложение может не работать?

JAVA не должен допускать эту «функцию».

Обращаем ваше внимание: Возможно, я думаю об этом совершенно неверно, или я что-то упустил прямо перед глазами. Извинения, но все же хотели его очистить.

ответ

2

Речь идет о кодировке символов. Вышеупомянутый Cp1252 является «специфическим» набором символов Windows. (Источник: https://en.wikipedia.org/wiki/Windows-1252) Если вы хотите удалить свою зависимость от этого конкретного набора символов, сохраните все ресурсы как UTF-8 закодированных файлов. Это устранит предупреждение и приведет вас к более переносимой версии вашего проекта. Существует способ заставить mvn конвертировать эти файлы (https://maven.apache.org/general.html#encoding-warning), но он может создать некоторые ошибки. Постарайтесь сохранить все свои ресурсы в UTF-8.

3

На момент создания проекта плагины Maven могут копировать ресурсы. Вот почему это предупреждение. Если вы хотите, чтобы сделать его независимым вы можете добавить следующее ПОМ файл

<project> 
    ... 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    ... 
</project> 

This is actually a frequently asked question in maven.

Это или аналогичное предупреждение испускается плагин, который обрабатывает текстовые файлы, но не был настроен на использование конкретная кодировка файла. Поэтому устранение предупреждения - это просто вопрос о том, какой плагин испускает его и как настроить кодировку для него. Это так же просто, как добавление следующего свойства в ваш POM (или один из его родительских POM):

+0

Я новичок в концепции maven. Может быть, поэтому. Большое спасибо, он отлично работал. – DeepN

1

Ваш вопрос относится скорее к Maven as build system (Software), чем сама Java. Сборки Maven происходит в несколько этапов/фаз: https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

В один шаг ресурсы, то есть HTML, XML, CSV и другие текстовые файлы копируются, с помощью Maven плагин ресурсов: https://maven.apache.org/plugins/maven-resources-plugin/examples/encoding.html

[WARNING] Using platform encoding (Cp1252 actually) to copy filtered 
      resources, i.e. build is platform dependent! 

отфильтрованных здесь означает, что плагин может сделать замену текста для ваших свойств Maven, определенных в POM или предопределенных свойствах Maven, как $ {project.version}. Таким образом, вы можете иметь автоматическую версию, отображаемую в одном из ваших .html-файлов.

The Maven Ресурсы Плагин может быть настроен для работы с конкретными кодировками/файлов кодировок: https://maven.apache.org/plugins/maven-resources-plugin/examples/encoding.html

Если вы не явно указать один, Maven принимает по умолчанию кодировку символов платформы, которая находится в вашем случае на Windows System cp-1252, а сборка становится зависимой от платформы.

Смежные вопросы