2011-08-18 18 views
11

Sto facendo questa domanda a voi ragazzi dato che la pagina del progetto non ha molte informazioni. In sintesi sto preparando il plugin nativo2ascii-maven per elaborare alcune delle mie risorse. Funziona bene per l'elaborazione dei file nella directory principale. Ma ora ho i file nella sottodirectory: /template/email/ e vorrei che fossero inclusi nell'elaborazione. Ragazzi, per favore potete aiutarmi?Maven: Come configurare nativo2ascii-maven-plug

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

Grazie mille !!

+0

Intendi per directory radice al di fuori dell'ambito del progetto corrente maven? – khmarbaise

risposta

5

è necessario definire una sezione di esecuzione per ogni cartella che si desidera elaborare e spostare lo src e dest alla parte all'esecuzione:

<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

Sfortunatamente sembra che native2ascii [non supporti 'dest/src'] (http://mojo.codehaus.org/native2ascii-maven-plugin/native2ascii-mojo.html). –

+3

1.0-alpha-1 supporta dest/src. Ma 1.0-beta-1 definisce nuovo come src e dest, il che significa che l'output 1.0-beta-1 sovrascriverà il nostro input, che è sbagliato. – oraclesoon

3

Ecco una soluzione per "native2ascii". Tutti i file (ricorsivamente) si trovano in src/main/locale sono destinati ad 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

Di recente ho creato un'altra versione di native2ascii Maven plug-in, che copre l'uso di entrambe le vecchie versioni e contiene anche i file XML utilizzati da M2E Plug-in Eclipse: https://github.com/dmatej/native2ascii/releases

Devo forzare qualcuno a metterlo nei repository ufficiali di Maven ... ma puoi ancora usarlo nel tuo.

2

Ecco un esempio di configurazione per la versione 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 caso di errore, è possibile controllare il codice sorgente plug here.

+0

Stavo migrando da Java6 a Java8, quindi mi è stato richiesto di aggiornare 1.0-alpha-1 a 1.0-beta-1. 1.0-beta-1 ha 2 problemi (1) la sintassi pom xml è cambiata, non più src e dest. (2) la nuova workDir funge da cartella src e dest, che è errata, perché l'output sovrascriverà il file sorgente di input originale. – oraclesoon

+0

https://davidsimpson.me/2015/03/04/automated-native2ascii-character-conversion-internationalization-atlassian-add-ons/ suggerisce che 1.0-alpha-1 possa essere riutilizzato con dipendenza da Jdk6- tools.jar. – oraclesoon

+0

Sto usando il '1.Versione 0-beta-1' con parametri 'src' /' dest'. L'Idea IntelliJ si lamenta ma sembra funzionare per me: http://stackoverflow.com/questions/36573916/how-to-get-rid-of-maven-plugin-configuration-error-in-intellij-idea – Felix

0

Lo svantaggio in 1.0-beta-1 è l'approccio con workDir. Non voglio cambiare il mio codice sorgente in ogni build, ma ho ancora bisogno di qualche strumento per fornire l'anotizzazione Unicode ai miei file di proprietà.

Così ho risolto il problema con due configurazioni:

  1. Set Workdir all'obiettivo del progetto;
  2. Modificare la fase in qualcosa dopo le risorse del processo; 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> 
    

ho usato 'compilare' dal IDE interno è quello che uso di più.

Problemi correlati