我向你们提出这个问题,因为项目页面本身并没有太多的信息。
基本上我设置native2ascii-maven-plugin来处理我的一些资源。它适用于处理根目录中的文件。但现在我在子目录下有文件:/template/email/
并希望它们包含在处理中。你能帮帮我吗?
<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>
非常感谢!
答案 0 :(得分:6)
您需要为要处理的每个文件夹定义一个执行部分,并将src和dest移动到执行部分:
<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>
答案 1 :(得分:4)
这是“native2ascii”的解决方案。 src/main/locale
中找到的所有文件(递归)都指定为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>
[...]
答案 2 :(得分:2)
以下是版本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>
如果出现错误,您可以查看插件源代码here。
答案 3 :(得分:0)
我最近创建了另一个版本的native2ascii maven插件,它涵盖旧版本的使用,还包含m2e Eclipse插件使用的XML文件:https://github.com/dmatej/native2ascii/releases
我必须强迫某人把它放到官方maven存储库中......但你仍然可以在自己的库中使用它。
答案 4 :(得分:0)
1.0-beta-1的缺点是使用 workDir 的方法。 我不想在每个版本中更改我的源代码,但我仍然需要一些工具来为我的属性文件提供unicode anotation。
所以我用两种配置解决了这个问题:
在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>
我已经使用了阶段&#39;编译&#39;因为IDE内部是我最常用的。
答案 5 :(得分:0)
这是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>