2012-04-28 11 views
9

Non voglio essere affidabile su una variabile di ambiente esterna per costringere Maven a costruire le mie classi con UTF-8. Su Mac, ho riscontrato molti problemi durante la creazione di Maven. Solo l'opzione di sotto ha risolto il problema:C'è un modo per far sì che Maven generi file di classe con UTF-8 senza utilizzare JAVA_TOOL_OPTIONS esterno?

export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8 
mvn clean install 

Comunque sto distribuendo il mio progetto e non ha senso fare affidamento su l'utente a impostare questa variabile d'ambiente per costruire correttamente il progetto.

provato di tutto, come descritto qui: enabling UTF-8 encoding for clojure source files

Chiunque ha una luce su questo punto impressionante Maven?

+0

Si sta verificando un errore/avviso di codifica nell'output di Maven? – andyb

risposta

30

@Joop Eggen ha dato la risposta giusta qui: https://stackoverflow.com/a/10367745/962872

Non è sufficiente per definire la proprietà. DEVI farlo passare all'interno dei plugin appropriati. Non andrà per magia lì dentro.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>...</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
     <encoding>${project.build.sourceEncoding}</encoding> 
    </configuration> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>...</version> 
    <configuration> 
     <encoding>${project.build.sourceEncoding}</encoding> 
    </configuration> 
</plugin> 
... 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 
+0

Bello e grazie per averlo scritto. Sono felice di aver ricevuto una risposta ad entrambe le domande alla fine. – andyb

+1

La risposta è giusta, ma solo per informazione: secondo la documentazione ufficiale di Maven, solo l'aggiunta del tag '' dovrebbe essere OK. Quote: _Per i plugin ** che seguono le nostre linee guida per la codifica dei file sorgente * *, questo è facile come aggiungere la seguente proprietà al tuo POM (o una delle sue POM padre): ..._ Source: http://maven.apache.org/general.html#encoding-warning – mithrop

+1

maven-compiler -la documentazione di plug-in e maven-resources-plugin dice: codifica dei parametri: Il valore predefinito è: '$ {project.build.sourceEncoding}'. Quindi suppongo che l'impostazione della proprietà sia sufficiente al giorno d'oggi. – leo

1

Sì c'è, definire

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 
+0

Questo NON funziona su Mac. Ho provato qui molte volte senza successo. :( – chrisapotek

+2

Rispetto ad altri problemi: quale versione di Maven stai usando? E quali problemi hai ricevuto? Messaggi di errore, ecc.? – khmarbaise

0

Ero in esecuzione in questo problema, ma solo durante l'esecuzione della compilazione da Emacs. Non potevo cambiare i poms del progetto. Ciò che ha funzionato per me è stato il seguente in ~/.mavenrc

LANG=en_US.UTF-8 
Problemi correlati