[Maven] Configurando o Source Encoding de um Projeto

Nos tutoriais anteriores, quando executamos alguma operação de build, talvez você tenha notado algumas mensagens de warning que o Maven gera quando está processando os arquivos de código-fonte ou os arquivos de resource.

...
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ simple-project ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
...
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ simple-project ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
...

Essas mensagens são geradas quando o character encoding dos arquivos não foi configurado no projeto. O Maven gera os warnings avisando que o encoding utilizado no processamento dos arquivos é o que está disponível no ambiente de execução atual, ou seja, o resultado do build pode ser diferente em outros ambientes de execução com character encodings diferentes.

É recomendável sempre configurar o encoding de um projeto, pois dessa forma o Maven irá utilizar aquele encoding em todos os builds, independentemente da plataforma que está sendo utilizada, e o resultado do processamento dos arquivos será o mesmo.

Vamos configurar o character encoding de um projeto chamado simple-project. Faça a seguinte alteração no arquivo POM:

Agora, toda vez que um build for executado, o Maven irá utilizar o encoding UTF-8 para processar os arquivos. Se invocarmos a fase compile, o Maven informará qual character encoding foi utilizado no processamento.

...
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ simple-project ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
...

Vários outros encodings podem ser utilizados. Exemplos: ASCII, ISO-8859–1, WINDOWS-1252, CP437.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.