2011-07-25 84 views
0

我试图在Cp1252编码上设置我安装的maven 3.0.3。是否可以在不编辑其中一个pom.xml文件的情况下更改编码?也许在settings.xml中为编译器插件创建配置文件?如果是的话,该怎么做?以下没有工作:Maven:安装编译器插件编码而不编辑pom.xml

<settings> 
... 
<profiles> 
<profile> 
    <id>encoding</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
    </activation> 
    <build> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
      <encoding>Cp1252</encoding> 
     </configuration> 
     </plugin> 
    </build> 
</profile> 
    </profiles> 
    <activeProfiles> 
    <activeProfile>encoding</activeProfile> 
    </activeProfiles> 
</settings> 

回答

4

好吧,我加入

-Dfile.encoding=CP1252 

全球MAVEN_OPTS

+0

这看起来像设置一个java vm属性,你确定它不会影响你的资源吗? (即试图读取一个utf-8 xml文件作为cp1252)。 –

+0

项目设置迫使我以这种方式解决这个问题,并且这个工作是atm。我不知道更好的方法,也许你可以帮忙? –

0

把你的项目的根POM解决了这个问题:

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

它为所有使用此pom作为父项的子项目定义它。否则你的构建是不可复制的。

+0

对不起,但下次请阅读全文问题 –

+0

我看了这个问题。问题是,如果父pom不会被更改,编码将由系统属性完成的构建是不可重现的,这是非常糟糕的。 – khmarbaise