13 maja 2009

[WARNING] Using platform encoding... i project.build.sourceEncoding w Apache Maven 2.1.0

Migracja do nowej wersji Apache Maven 2.1.0 nie powinna nastręczać wielu problemów, ale nawet przy ich braku zaleca się przejrzenie komunikatów z budowania projektu. Z pewnością spotkamy się z nowym komunikatem na poziomie WARNING:

[WARNING] Using platform encoding (Cp1250 actually) to copy filtered resources, i.e. build is platform dependent!

Pojawia się on dwukrotnie w trakcie wykonania wtyczki maven-resources-plugin. Wystarczy jednak dodać do pom.xml następujący wycinek:
 <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
aby o temacie zapomnieć. Więcej szczegółów bezpośrednio u źródła w POM Element for Source File Encoding.

Dla zainteresowanych - stworzenie nowego projektu mavenowego to polecenie:
 $ mvn archetype:generate -B \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DarchetypeVersion=1.0 \
-DgroupId=pl.jaceklaskowski -DartifactId=maven-encoding -Dversion=1.0
Teraz wystarczy zbudować projekt poleceniem mvn package (zamiast mvn install, który kopiuje artefakt projektowy do lokalnego repozytorium):
 $ mvn package
...
[INFO] [resources:resources]
[WARNING] Using platform encoding (Cp1250 actually) to copy filtered resources, i.e. build is platform dependent!
...
[INFO] [resources:testResources]
[WARNING] Using platform encoding (Cp1250 actually) to copy filtered resources, i.e. build is platform dependent!
...
[INFO] Building jar: c:\projs\sandbox\maven-encoding\target\maven-encoding-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
Po dodaniu project.build.sourceEncoding do pom.xml WARNING idzie w odstawkę. Od tej pory, dzienniki powinny być czyste.