Uso el maven-resource-plugin para filtrar algunos recursos en mi proyecto de maven. En mi proyecto principal que tengo:¿Configurar la codificación para diferentes tipos de archivos en maven?
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
en un proyecto sub Tengo un archivo test.properties que es una llanura java properties file con codificación por defecto = ISO-8859-1. Este archivo contiene:
aboutText=Version ${project.version} © 2012 blabla
para fabricar filtros de este archivo seguro correctamente He dividido el experto en recursos-plugin en ejecuciones separadas, cada una con su codificación:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>ico</nonFilteredFileExtension>
<nonFilteredFileExtension>jar</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
<executions>
<execution>
<id>filter-properties-files</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<!-- java properties files are encoded in ISO-8859-1 so when
filtering those files we stick with that encoding. -->
<encoding>ISO-8859-1</encoding>
<outputDirectory>${basedir}/after</outputDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/before</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>filter-non-properties-files</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<outputDirectory>${basedir}/after</outputDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/before</directory>
<includes>
<include>**/*.product</include>
<include>**/*.inf</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
Esto parece una exageración y tengo una sensación que no estoy usando el plugin correctamente o que este problema debe manejarse de otra manera. Tal vez se adhieren a la codificación de caracteres especiales en los archivos de propiedades directamente:
aboutText=Version ${project.version} \u00a9 2012 blabla
?
¿Consideró que debe escribir su propio plugin maven para esto? (puede haber opciones usando el plugin ant pero eso es solo una suposición) – wemu
¿Está seguro de que tiene que hacer la sección adicional para los archivos de propiedades? Pensé es solo para el código fuente, mientras que los archivos de propiedades son recursos y, por lo tanto, no hay código fuente. –
hennr
'project.build.sourceEncoding' en realidad se aplica a' maven-resources-plugin', ver https://maven.apache.org/plugins/maven-resources-plugin/xref/org/apache/maven/plugin/resources/ ResourcesMojo.html # 69, el valor predeterminado para 'encoding' es' project.build.sourceEncoding' –