2013-10-21 5 views
5

Sto avendo un Maven-Project che è configurato utilizzando le seguenti proprietà:Maven codifica sorgente del progetto non funziona

<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> 

Sulla mia macchina tutto funziona bene con queste impostazioni. Tuttavia, su un'altra macchina, quando ho check out e cercare di costruire utilizzando mvn install gli errori del compilatore 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 

Ho già provato in esecuzione mvn con -Dfile.encoding=UTF-8 ma che non ha aiutato. $LC_CTYPE report UTF-8.

Cosa posso fare?

È possibile visualizzare il file pom completa qui: https://github.com/scravy/scuttle/blob/master/pom.xml

+0

Sei sicuro al 100% che le tue fonti siano codificate in UTF-8? Forse non lo sono, ma per qualche motivo funziona nel tuo ambiente (forse il tuo IDE interferisce) – sola

+3

Aggiorna la tua versione del compilatore di Maven perché la 2.0.2 è davvero vecchia. Attualmente abbiamo 3.1 .. – khmarbaise

+0

Ho lo stesso problema con il plug-in maven-compiler predefinito v2.0.2. L'aumento della versione risolve il problema. – gavenkoa

risposta

9

Alla fine il commento di khmarbaise ha aiutato a trovare una soluzione:

ho configurato il compilatore plug e specificato la codifica fonte lì, ora tutto funziona ovunque:

<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> 
+1

È fantastico che tu abbia trovato tu stesso la soluzione al tuo problema! –

2

Hai tutte le impostazioni corrette nel pom, così che è buono. Verifica che l'IDE (e gli altri utilizzati dal tuo team, se applicabile) sia configurato per UTF-8.

Successivamente, pulire il repository locale .m2 ed eseguire nuovamente la build. Potrebbe essere possibile che una delle tue dipendenze transitive non sia stata compilata con la giusta codifica. Ma potresti avere la versione "giusta" nel tuo .m2 che rende tutto OK mentre la stessa versione non esiste sull'altra macchina.

Buona fortuna! So quanto possa essere seccante questa roba.

1

Invece di impostare maven opta , imposta una nuova variabile ambientale - JAVA_TOOL_OPTIONS = -Dfile.encoding=UTF8