Encoding Maven:设置编译器插件编码而不编辑pom.xml

Encoding Maven:设置编译器插件编码而不编辑pom.xml,encoding,maven-plugin,maven-3,Encoding,Maven Plugin,Maven 3,我正在尝试在Cp1252编码上设置已安装的maven 3.0.3。是否可以在不编辑pom.xml文件的情况下更改编码?也许在settings.xml中为编译器插件创建配置文件?如果是,怎么做?以下操作不起作用: <settings> ... <profiles> <profile> <id>encoding</id> <activation> <activeByDefault>true

我正在尝试在Cp1252编码上设置已安装的maven 3.0.3。是否可以在不编辑pom.xml文件的情况下更改编码?也许在settings.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>

...
编码
真的
org.apache.maven.plugins
maven编译器插件
Cp1252
编码

好的,我通过添加

-Dfile.encoding=CP1252

对于全局MAVEN_OPTS

好的,我通过添加

-Dfile.encoding=CP1252

要将全局MAVEN_选项放入项目的根pom中,请执行以下操作:

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

cp1252

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

将其放入项目的根pom中:

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

cp1252

它为使用此pom作为父项目的所有子项目定义了它。否则您的生成将无法复制。

这看起来像是设置了java vm属性,您确定这不会影响您的资源吗?(即尝试将utf-8XML文件读取为cp1252)。项目设置迫使我以这种方式解决这个问题,这是可行的。我不知道更好的方法,也许你能帮上忙?这看起来像是设置了java vm属性,你确定这不会影响你的资源吗?(即尝试将utf-8XML文件读取为cp1252)。项目设置迫使我以这种方式解决这个问题,这是可行的。我不知道更好的办法,也许你能帮忙?我读了问题。问题是,如果父pom不会被更改,编码将由系统属性完成,那么构建是不可复制的,这真的很糟糕。我读了这个问题。问题是,如果父pom不会被更改,编码将由系统属性完成,那么构建是不可复制的,这真的很糟糕。