Im firing this question at you guys since the project-page itself has not a lot of information.
Basicly im setting up the native2ascii-maven-plugin to process some of my resources. It works fine for processing the files in root directory. But now i have files under subdirectory: /template/email/
and would like them to be included in the processing. Can you guys please help me out?
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native2ascii-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<configuration>
<dest>target/resources</dest>
<src>src/main/resources</src>
</configuration>
<executions>
<execution>
<id>native2ascii-utf8</id>
<goals>
<goal>native2ascii</goal>
</goals>
<configuration>
<encoding>UTF8</encoding>
<includes>ApplicationResources*.properties, errors.properties, /template/email/newBooking*.ftl</includes>
</configuration>
</execution>
</executions>
</plugin>
Thanks a bunch!!
You need to define a execution section for every folder you want to process and move the src and dest to the execution part:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native2ascii-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<executions>
<execution>
<id>native2ascii-utf8-resources</id>
<goals>
<goal>native2ascii</goal>
</goals>
<configuration>
<dest>target/resources</dest>
<src>src/main/resources</src>
<encoding>UTF8</encoding>
<includes>ApplicationResources*.properties, errors.properties, /template/email/newBooking*.ftl</includes>
</configuration>
</execution>
<execution>
<id>native2ascii-utf8-email</id>
<goals>
<goal>native2ascii</goal>
</goals>
<configuration>
<dest>target/resources/email</dest>
<src>src/main/templates/email</src>
<encoding>UTF8</encoding>
</configuration>
</execution>
</executions>
</plugin>
Here a solution for "native2ascii". All files (recursively) found in src/main/locale
are destined to target/classes
:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native2ascii-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<executions>
<execution>
<goals>
<goal>native2ascii</goal>
</goals>
<configuration>
<encoding>UTF8</encoding>
<src>src/main/locale</src>
<dest>target/classes</dest>
</configuration>
</execution>
</executions>
</plugin>
[...]
Here is a sample configuration for version 1.0-beta-1:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native2ascii-maven-plugin</artifactId>
<version>1.0-beta-1</version>
<executions>
<execution>
<id>native2ascii-utf8-resources</id>
<phase>process-classes</phase>
<goals>
<goal>native2ascii</goal>
</goals>
<configuration>
<workDir>src/main/resources</workDir>
<encoding>UTF8</encoding>
<tempDir>${basedir}/temp</tempDir>
<includes>
<include>**/*_fa.properties</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
In case of error, you can check the plugin source code here.
Here is a sample configuration for version 2.0+
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native2ascii-maven-plugin</artifactId>
<version>2.0.1</version>
<executions>
<execution>
<id>native2ascii-utf8-properties</id>
<phase>process-resources</phase>
<goals>
<goal>inplace</goal>
</goals>
<configuration>
<dir>${project.build.directory}/classes</dir>
<includes>**/*.properties</includes>
<encoding>UTF-8</encoding>
</configuration>
</execution>
</executions>
</plugin>
I have recently created another version of native2ascii maven plugin, that covers usage of both old versions and also contains XML files used by m2e Eclipse plugin: https://github.com/dmatej/native2ascii/releases
I have to force someone to put it to official maven repositories ... but you can still use it in your own.
The drawback in 1.0-beta-1 is the approach with workDir.
I don't wanna change my source code in each build, but I still need some tool to provide unicode anotation to my property files.
So I've solved the issue with two configuration:
- Set workDir to your project's target;
Change the phase to something after process-resources;
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>native2ascii-maven-plugin</artifactId>
<version>1.0-beta-1</version>
<executions>
<execution>
<id>native2ascii-utf8-i18n</id>
<phase>compile</phase>
<goals>
<goal>native2ascii</goal>
</goals>
<configuration>
<workDir>target/classes/i18n</workDir>
<encoding>${project.build.sourceEncoding}</encoding>
<includes>
<include>**/*.properties</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
I've used phase 'compile' since inside IDE is the one I use most.