que especiales codificacion caracteres acentos java maven encoding maven-2 maven-3

java - especiales - ¿Cómo configurar la codificación en Maven?



utf-8 caracteres especiales (5)

Cuando ejecuto maven install en mi proyecto de varios módulos maven siempre obtengo el siguiente resultado:

[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!

Entonces, busqué en Google un poco, pero todo lo que puedo encontrar es que tengo que agregar:

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

... a mi pom.xml. Pero ya está ahí (en el pom.xml principal).

Configurar <encoding> para el complemento de recursos de maven o el complemento de compilador de maven tampoco lo soluciona.

¿Entonces, cuál es el problema?



Esto sería adicional a lo anterior, si alguien encuentra un problema con letras escandicas que no se resuelve con la solución anterior.

Si los archivos de origen de Java contienen letras escandicas, deben ser interpretados correctamente por el Java utilizado para compilar . (eg letras escandicas usadas en constantes)

Incluso si los archivos se almacenan en UTF-8 y el Maven está configurado para usar UTF-8, el sistema Java utilizado por el Maven seguirá usando el valor predeterminado del sistema (por ejemplo, en Windows: cp1252).

Esto solo será visible ejecutando las pruebas a través de maven (posiblemente imprimiendo los valores de estas constantes en las pruebas. Las letras escandicas impresas se mostrarían como ''<?>'') Si no se prueban correctamente, esto corrompería los archivos de la clase como resultado de compilación. dejado desapercibido

Para evitar esto, debe configurar el Java utilizado para la compilación para utilizar la codificación UTF-8. No es suficiente tener la configuración de codificación en el maven pom.xml, necesita establecer la variable de entorno: JAVA_TOOL_OPTIONS = -Dfile.encoding = UTF8

Además, si usa Eclipse en Windows, es posible que deba configurar la codificación utilizada además de esto (si ejecuta una prueba individual a través de eclipse).


OK, he encontrado el problema.

Yo uso algunos complementos de informes. En la documentación del complemento failafe-maven-plugin ( http://maven.apache.org/plugins/maven-failsafe-plugin/integration-test-mojo.html ) encontré que la configuración <encoding> - por supuesto - usa ${project.reporting.outputEncoding} de forma predeterminada. Así que agregué la propiedad como elemento secundario del elemento del project y todo está bien ahora:

<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties>

Véase también


Prueba esto:

<project> ... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.7</version> <configuration> ... <encoding>UTF-8</encoding> ... </configuration> </plugin> </plugins> ... </build> ... </project>


Si combina las respuestas anteriores, finalmente un pom.xml que se configuró para UTF-8 debería parecer así.

pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>YOUR_COMPANY</groupId> <artifactId>YOUR_APP</artifactId> <version>1.0.0-SNAPSHOT</version> <properties> <project.java.version>1.8</project.java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <dependencies> <!-- Your dependencies --> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>${project.java.version}</source> <target>${project.java.version}</target> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> <configuration> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin> </plugins> </build> </project>