簡體   English   中英

Maven項目源編碼不起作用

[英]Maven project source encoding does not work

我有一個使用以下屬性配置的Maven-Project:

<properties>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>

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

在我的機器上,這些設置一切正常。 但是,在另一台機器上,當我檢查它並嘗試使用mvn install構建它時編譯器錯誤unmappable character for encoding ASCII

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project scuttle: Compilation failure: Compilation failure:
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/handlers/sakai/SakaiVV.java:[99,39] error: unmappable character for encoding ASCII
[ERROR] 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/handlers/sakai/SakaiVV.java:[99,40] error: unmappable character for encoding ASCII
[ERROR] 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/domain/sakai/SakvvTermin.java:[66,30] error: unmappable character for encoding ASCII
[ERROR] 
[ERROR] /export/local-1/julian-downloads/scuttle/src/main/java/de/fu/mi/scuttle/domain/sakai/SakvvTermin.java:[66,31] error: unmappable character for encoding ASCII

我已經嘗試使用-Dfile.encoding=UTF-8運行mvn-Dfile.encoding=UTF-8沒有幫助。 $LC_CTYPE報告UTF-8

我能做什么?

你可以在這里看到完整的pom文件: https//github.com/scravy/scuttle/blob/master/pom.xml

最后,khmarbaise的評論幫助我找到了解決方案:

我配置了編譯器插件並在那里指定了源編碼,現在一切都在無處不在:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>2.3.2</version>
      <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
      </configuration>
    </plugin>
  </plugins>
</build>

你的pom中有所有正確的設置,所以這很好。 驗證您的IDE(以及團隊使用的其他IDE)是否配置為UTF-8。

接下來,清理您的本地.m2存儲庫並再次運行您的構建。 可能有可能您的一個傳遞依賴項沒有使用正確的編碼進行編譯。 但是你的.m2中可能有“正確”的版本,這使得一切正常,而另一台機器上不存在相同的版本。

祝好運! 我知道這些東西有多煩人。

而不是設置maven opts,設置新的環境變量 - JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF8

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM