Maven / Encoding UTF-8 unter Windows

Sergeant_Pepper

Bekanntes Mitglied
Hallo,

in diesem Thread habe ich ein Problem mit UTF-8 unter Windows beschrieben:
http://www.java-forum.org/java-basics-anfaenger-themen/128656-umlaute-swing-gui.html

Ich komme nun zwar zurecht, verstehe aber nicht, warum Maven sich so verhält. Wenn die Property
Code:
<project.build.sourceEncoding>
mit "UTF-8" belegt ist, warum brauche ich dann noch das Element
Code:
<encoding>UTF-8</encoding>
beim compiler-Plugin???

Code:
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
 
hi,

Die Angabe in der Konfiguration für das Maven compiler plugin ist überflüssig, da es per default via property an das Maven Compiler Plugin übergeben wird.

Siehe auch die Doku zum Maven-Compiler Plugin siehe Eintrag unter encoding...Der Default Wert ist:
${project.build.sourceEncoding} was genau der Angabe unter properties entspricht.


heißt mit anderen Worten die Konfiguration sollte so aussehen:

Code:
   <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
Abgesehen davon sollte die Version des Compiler Plugins mal angehoben werden, dass könnte auch noch für das Problem verantwortlich sein...(Aktuell: 2.3.2)...

Weiterhin gehört eine Konfiguration eines Plugins wie diese in den pluginManagement Abschnitt...

Gruß
Karl Heinz Marbaise
 
Danke 🙂 nun klappt es.

Es war die Version des Compiler-Plugins. Die Hinweise in der Doku zum Default-Wert hatte ich schon gelesen, deshalb war ich ja verwundert dass es nicht klappte.

Warum sollen die Einstellungen in das PluginManagement verschoben werden? Es handelt sich um ein Multi-Modul-Projekt, aber der Compiler wird doch überall gebraucht.
 
Zuletzt bearbeitet:
Hallo,

Warum sollen die Einstellungen in das PluginManagement verschoben werden? Es handelt sich um ein Multi-Modul-Projekt, aber der Compiler wird doch überall gebraucht.
Das ist genau der Grund...

Hast Du dass den an mehreren stellen stehen inkl. Konfiguration ?

Update:

Also der übliche Weg ist im Parent einen pluginManagement Block zu haben, der alle verwendeten Plugins inkl. Version definiert...siehe hier und dann wird eben in einem Modul nur noch das Plugin mit groupId und artifactId angegeben aber OHNE Version (je nachdem auch OHNE Konfiguration)...


Gruß
Karl Heinz Marbaise
 
Zuletzt bearbeitet:
der pom-Schnipsel oben stammt aus dem Wurzel-pom, also aus dem obersten parent-Projekt.

Ich dachte mir, der compiler wird sowieso überall gebraucht, mit identischer config. Also schreibe ich alles bei <plugin> hinein und nicht in <pluginManagement>.
 

Zurück
Oben