I use the maven-resource-plugin to filter some resources in my maven project. In my parent project I have:

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

In a sub project I have a test.properties file which is a plain java properties file with default encoding=ISO-8859-1. This file contains:

aboutText=Version ${project.version} © 2012 blabla

To make sure this file filters correctly I have split the maven-resource-plugin into separate executions each with its encoding:

  <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>
 
Edit
Report