2011-08-18 19 views
11

Estoy lanzando esta pregunta a ustedes, ya que la página del proyecto en sí no tiene mucha información. Básicamente estoy configurando el plugin native2ascii-maven para procesar algunos de mis recursos. Funciona bien para procesar los archivos en el directorio raíz. Pero ahora tengo archivos en el subdirectorio: /template/email/ y me gustaría que se incluyeran en el procesamiento. ¿Pueden ayudarme por favor?Maven: Cómo configurar 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> 

Thanks a bunch !!

+0

¿Te refieres al directorio raíz fuera del alcance del proyecto actual de maven? – khmarbaise

Respuesta

5

es necesario definir una sección de ejecución para cada carpeta que desea procesar y mover el src y dest a la parte de ejecución:

<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

Desafortunadamente, parece que native2ascii [no admite 'dest/src'] (http://mojo.codehaus.org/native2ascii-maven-plugin/native2ascii-mojo.html). –

+3

1.0-alpha-1 admite dest/src. Pero 1.0-beta-1 define el nuevo como src y dest, lo que significa que la salida 1.0-beta-1 sobrescribirá nuestra entrada, lo cual es incorrecto. – oraclesoon

3

Aquí una solución para "native2ascii". Todos los archivos (de forma recursiva) que se encuentran en src/main/locale están destinados a 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

he creado recientemente otra versión de native2ascii Maven plugin, que cubre el uso de ambas versiones antiguas y también contiene archivos XML utilizados por M2e Eclipse plugin: https://github.com/dmatej/native2ascii/releases

Tengo que forzar a alguien a ponerlo en repositorios oficiales de maven ... pero aún puede usarlo en el suyo.

2

Aquí está un ejemplo de configuración para la versión 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> 

En caso de error, se puede comprobar el código fuente del plugin here.

+0

Estaba migrando de Java6 a Java8, por lo tanto, tuve que actualizar 1.0-alpha-1 a 1.0-beta-1. 1.0-beta-1 tiene 2 problemas (1) la sintaxis de pom xml ha cambiado, no más src y dest. (2) el nuevo workDir actúa como la carpeta src y dest, lo que es incorrecto, porque la salida sobrescribirá el archivo fuente de entrada original. – oraclesoon

+0

https://davidsimpson.me/2015/03/04/automated-native2ascii-character-conversion-internationalization-atlassian-add-ons/ sugiere que se puede reutilizar 1.0-alpha-1 con la dependencia de Jdk6- tools.jar. – oraclesoon

+0

Estoy usando el '1.Versión 0-beta-1' con parámetros 'src' /' dest'. La Idea IntelliJ se queja, pero parece funcionar para mí: http://stackoverflow.com/questions/36573916/how-to-get-rid-of-maven-plugin-configuration-error-in-intellij-idea – Felix

0

El inconveniente en 1.0-beta-1 es el enfoque con workDir. No quiero cambiar mi código fuente en cada compilación, pero aún necesito alguna herramienta para proporcionar una anotación Unicode a mis archivos de propiedades.

Así que hemos resuelto el problema con dos configuraciones:

  1. Conjunto WORKDIR al objetivo de su proyecto;
  2. Cambie la fase a algo después de los recursos del proceso; fase

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

He usado 'compilar' desde dentro del IDE es el más utilizo.

Cuestiones relacionadas