2011-08-18 262 views
11

由于项目页面本身并没有很多信息,所以我要向你们解释这个问题。 基本上即时设置native2ascii-maven插件来处理我的一些资源。它适用于处理根目录中的文件。但现在我有子目录下的文件:/template/email/,并希望它们包含在处理中。你们可以帮我吗?Maven:如何配置native2ascii-maven-plugin

<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

你的意思是根目录之外的当前maven项目的范围? – khmarbaise

回答

5

您需要定义一个执行部分你要处理和移动中的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

不幸的是,似乎native2ascii [不支持'dest/src'](http://mojo.codehaus.org/native2ascii-maven-plugin/native2ascii-mojo.html)。 –

+3

1.0-alpha-1支持dest/src。但1.0-beta-1将新的定义为src和dest,这意味着1.0-beta-1输出将会覆盖我们的输入,这是错误的。 – oraclesoon

3

这里“的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> 
      [...] 
0

我最近创建的native2ascii的Maven插件另一个版本,一个涵盖旧版本的使用,并且还包含由M2E Eclipse插件使用的XML文件:https://github.com/dmatej/native2ascii/releases

我不得不强迫某人把它放到官方的maven仓库中......但是你仍然可以在你自己的仓库中使用它。

2

这里是版本1.0-β-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

+0

我正在从Java6迁移到Java8,因此我被要求将1.0-alpha-1升级到1.0-beta-1。 1.0-beta-1有两个问题(1)pom xml语法已更改,不再有src和dest。 (2)新的workDir充当src和dest文件夹,这是错误的,因为输出会覆盖原始输入源文件。 – oraclesoon

+0

https://davidsimpson.me/2015/03/04/automated-native2ascii-character-conversion-internationalization-atlassian-add-ons/建议1.0-alpha-1可以重用,依赖于Jdk6-tools.jar。 – oraclesoon

+0

我正在使用'1。带'src' /'dest'参数的0-beta-1'版本。 IntelliJ的想法抱怨,但它似乎为我工作:http://stackoverflow.com/questions/36573916/how-to-get-rid-of-maven-plugin-configuration-error-in-intellij-idea – Felix

0

1.0-beta-1的缺点是workDir的方法。 我不想在每个构建中更改我的源代码,但是我仍然需要一些工具来为我的属性文件提供unicode anotation。

所以我已经解决了这个问题,有两种配置:

  1. 设置的workDir到项目的目标;
  2. 将阶段更改为过程资源之后的某个阶段;因为里面IDE

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

我使用阶段“编译”是一个我使用最多。