如何使Maven构建平台独立?


93

当构建使用我的Mac Maven的,在mvn install我得到

[警告]使用平台编码(实际上是MacRoman)来复制过滤的资源,即构建依赖于平台!

是否可以为给定平台(Linux)进行构建,或者以其他方式使构建平台独立?

Answers:


171

当您未在pom.xml中提供以下内容时,就会发生这种情况

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

缺少这意味着您使用的是平台特定的编码,这就是发出警告的原因。


2
您也可以在Maven的FAQ页面中找到解决方案。http://maven.apache.org/general.html#encoding-warnin
Jeff7566

是的,在添加了答案中提到的内容后,我的软件运行正常,没有发出警告。感谢Kal
Ripon Al Wasim 2015年

7

如果@Kal的答案对您不起作用,也许您可​​以从我的前30分钟中学习...下面的链接为上述答案增加了一行,从而解决了我的问题。我的问题与maven-resources-plugin 2.6有关,但是以下解决方案的提供者解决了一个不同的问题... https://stackoverflow.com/a/3018152/2485075


pom.xml的第一行是:<?xml version =“ 1.0” encoding =“ UTF-8”?>>我在Windows 7中发现了相同的警告:[警告]使用平台编码(实际上是UTF-8)来复制已过滤的资源,即构建取决于平台!
Ripon Al Wasim

1

对于特定需求:

<!-- https://maven.apache.org/plugins/maven-resources-plugin/index.html -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

如果插件已经配置,则只需添加

<encoding>UTF-8</encoding>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.