我在Eclipse开普勒上开发MacO。
我正在尝试使用UTF8运行maven,使其依赖于操作系统。
我想我已经尝试了很多解决方案,这些解决方案似乎对其他人有效,而对我无效
export JAVA _TOOL_OPTIONS -Dfile.encoding=UTF-8
当我在控制台中运行时:
mvn -version
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
Maven home: /usr/share/maven
Java version: 1.6.0_45, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: fr_FR, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac"
但我通过Eclipse运行maven,Eclipse说平台编码macRoman。。。当我运行时
清洁安装
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
Maven home: /Users/JP/git/CleanOmicsTracer/EMBEDDED
Java version: 1.6.0_45, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: fr_FR, platform encoding: MacRoman
OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac"
在我的pom.xml中,我将其设置为设置UTF-8:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<project.resources.sourceEncoding>UTF-8</project.resources.sourceEncoding>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<tag>${project.build.finalName}</tag>
<url>http://localhost:8080/manager/text</url>
<server>localhost</server>
<charset>UTF-8</charset>
<update>true</update>
<path>/${project.build.finalName}</path>
<username>jp</username>
<password>camille</password>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<fork>true</fork>
<meminitial>128m</meminitial>
<maxmem>1024m</maxmem>
<url>http://localhost:8080/manager/text</url>
<server>localhost</server>
<path>/${project.build.finalName}</path>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
</configuration>
</plugin>
它不起作用,我的.java中的éandè创建了一个错误:
当我在maven中更改编译插件时,这行
macRoman
,这将是可以的,但在我的另一台linux计算机中,不会有更多的Os依赖项和字符被误解。
当我清理安装时,输出对资源是可以的,但对编译器什么都不做:
【信息】---maven resources插件:2.6:resources(默认资源)@CleanOmicsTracer---[INFO]使用"UTF-8"编码复制筛选资源。[INF]正在复制36个资源[INF]
[信息]---maven编译器插件:3.1:compile(默认编译)@CleanOmicsTracer---[INFO]检测到更改-正在重新编译模块![信息]编译142个源文件到/Users/JP/git/CleanOmicsTracser/target/classes[INF]
〔信息〕---maven资源插件:2.6:testResources(默认testResources)@CleanOmicsTracer---[INFO]使用"UTF-8"编码以复制已筛选的资源。[信息]跳过不存在的resourceDirectory/Users/JP/git/CleanOmicsTracer/src/test/resources
更新:我将eclipse配置更改为使用/usr/share/maven,而不是嵌入式版本。我仍然有错误,而这次平台编码被很好地设置为UFT-8:
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
Maven home: /usr/share/java/maven-3.0.4
Java version: 1.6.0_45, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: fr_FR, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.4", arch: "x86_64", family: "mac"
[ERROR] /com/clb/genomic/lyon/validator/ParticipantExistenceValidator.java:[101,93] unmappable character for encoding UTF-8
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project CleanOmicsTracer: Compilation failure
如果平台编码设置为MacRoman时有效,但设置为UTF-8时失败,则意味着ParticipantExistenceValidator
不是UTF-8编码。您需要修复文件,而不是配置。
一个简单的方法是使用native2ascii两次,首先将MacRoman转换为unicode转义,然后再次使用-reverse
将转义转换回UTF-8。