2011-08-18 92 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> 
    

我使用階段「編譯」是一個我使用最多。