2010-11-19 59 views
1

如何指定(或“强制”)maven jar插件以使用我的特定编码(UTF-8)?Maven Jar编码问题

我生成插件:

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-jar-plugin</artifactId> 
<version>2.3.1</version> 
<executions> 
<execution> 
    <phase>package</phase> 
    <id>configurations-test</id> 
    <goals> 
    <goal>jar</goal> 
    </goals> 
    <configuration> 
    <classesDirectory>target/test</classesDirectory> 
    <forceCreation>true</forceCreation> 
    <finalName>${artifactId}-test</finalName> 
    </excludes> 
    </configuration> 
</execution> 
</executions></plugin> 

我设置编码父POM,每个副本与正确的编码

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

我刚刚创建的Jar之前controled文件执行,这些格式很好。

注意,我做了很多尝试addind特定编码的配置,但它仍然是行不通的,在我的包装瓶,我发现不适格式化字符(如©,这应该是é)

解压后的文件(html,xml,属性等)包含像é这样的字符而不是é。

+0

你什么意思,你找到的字符在罐?你的jar里有什么文件?一类? XML?属性? jar文件的文件名? – bmargulies 2010-11-19 13:18:49

+0

当我解压缩结果罐时,这些文件格式不正确。 – 2010-11-19 13:21:06

+0

解压缩后的文件(html,xml,属性等)包含诸如é的字符,而不是é – 2010-11-19 13:23:10

回答

0

jar不会弄乱你的文件。它只是复制字节。另一方面,资源插件可能。您需要设置${project.build.sourceEncoding}

请参阅http://maven.apache.org/plugins/maven-resources-plugin/copy-resources-mojo.html

+0

$ {project.build.sourceEncoding}已设置。复制资源运行良好,文件格式良好复制。在我的例子中,进入目标/测试文件是正确的,但在结果jar压缩文件格式不正确 – 2010-11-19 13:31:27

+0

得到它,似乎有些文件仍然在存储库中编码为ISO-8859-1。我必须找到它们,将编码更改为UTF-8并且一切正常 – 2010-11-19 13:46:36

+0

我很抱歉,我误解了与您设置的属性不同的属性,不一样。 – bmargulies 2010-11-19 19:37:25

0

指定UTF编码属性:

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

被警告,我已经经历了以下错误,当我使用UTF编码部署到WLS 10.3.6,不知道其他人。

java.lang.UnsupportedOperationException:不支持的档案类型: 邮编:/ ORACLE/fmwhome/user_projects /域/ dev_soa_osb /服务器/ AdminServer中的/ tmp/_WL_user/myicarus-201609261658/131q4y /战争/ WEB-INF/LIB/dummybean弹簧-1.0.0.jar!/。

不知道如何WLS配置读取UTF拉链

所以现在我使用ASCII作为编码,并WLS不抱怨