JAVA支持平台“依赖”概念?
我发现这下面的日志在我的控制台,而做“MAVEN安装”在我的项目,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引起的Platform Independency的概念,所以JAVA的“特性”(我称之为特性)使它能够在控制台中打印这一行。
这意味着我的所有文件都被加密(通过SEE),如果我把我的WAR放在未加密的机器中(如果密钥不同),那么应用程序可能无法运行?
JAVA不应该允许这个“功能”。
请注意:我可能以完全错误的方式思考这个问题,或者我在眼前丢失了一些东西。道歉,但仍想清除它。
这是关于字符编码。提到的Cp1252是一个Windows“特定”字符集。 (来源:https://en.wikipedia.org/wiki/Windows-1252)如果您想删除您对此特定字符集的依赖,请将所有资源保存为UTF-8编码文件。这将消除警告并将您引导至您的项目的更便携版本。有一种方法可以强制mvn转换这些文件(https://maven.apache.org/general.html#encoding-warning),但它可能会产生一些错误。 尝试保留UTF-8的所有资源。
在构建项目时,Maven插件可能会复制资源。这就是为什么它显示这个警告。如果你想使它独立,你可以添加以下的POM文件
<project>
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
</project>
This is actually a frequently asked question in maven.
这或类似的警告是由处理纯文本文件,但尚未配置使用插件发出一个特定的文件编码。因此,消除警告只是找出哪个插件发出它以及如何为其配置文件编码。这很容易将以下属性添加到您的POM(或其父POM之一):
您的问题更多地涉及到Maven作为构建系统(软件)比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!
这里过滤意味着插件可以为在POM中定义的Maven属性或预定义的Maven属性进行文本替换,如$ {project.version}。因此,您可以在其中一个.html文件中显示自动版本。
Maven的资源插件可以配置为使用特定的字符编码/文件编码工作:https://maven.apache.org/plugins/maven-resources-plugin/examples/encoding.html
当你没有明确声明一个,Maven的需要平台的默认字符编码,这是你的情况在Windows系统cp-1252,并且构建变成平台相关。
我是新的maven概念。也许这就是为什么。非常感谢你,它非常完美。 – DeepN