2011-08-18 35 views
11

Im kích hoạt câu hỏi này tại các bạn vì bản thân trang dự án không có nhiều thông tin. Cài đặt cơ bản plugin native2ascii-maven-plugin để xử lý một số tài nguyên của tôi. Nó hoạt động tốt để xử lý các tập tin trong thư mục gốc. Nhưng bây giờ tôi có các tập tin theo thư mục con: /template/email/ và muốn chúng được đưa vào trong quá trình xử lý. Các bạn có thể giúp tôi không?Maven: Cách định cấu hình 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> 

Cảm ơn một đám !!

+0

Bạn có nghĩa là bởi thư mục gốc nằm ngoài phạm vi của dự án maven hiện tại? – khmarbaise

Trả lời

5

Bạn cần phải xác định một phần thực hiện cho mỗi thư mục mà bạn muốn xử lý và di chuyển src và dest đến phần thi:

<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

Thật không may có vẻ như native2ascii [không hỗ trợ 'dest/src'] (http://mojo.codehaus.org/native2ascii-maven-plugin/native2ascii-mojo.html). –

+3

1.0-alpha-1 hỗ trợ dest/src. Nhưng 1.0-beta-1 định nghĩa mới là src và dest, có nghĩa là đầu ra 1.0-beta-1 sẽ ghi đè đầu vào của chúng tôi, điều đó là sai. – oraclesoon

3

Dưới đây là một giải pháp cho "native2ascii". Tất cả các file (đệ quy) được tìm thấy trong src/main/locale được mệnh để 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

Gần đây tôi đã tạo ra một phiên bản khác của native2ascii maven plugin, bao gồm việc sử dụng của cả hai phiên bản cũ và cũng chứa các file XML được sử dụng bởi Plugin M2E Eclipse: https://github.com/dmatej/native2ascii/releases

Tôi phải ép buộc ai đó đưa nó vào kho lưu trữ maven chính thức ... nhưng bạn vẫn có thể sử dụng nó trong của riêng bạn.

2

Đây là một cấu hình mẫu cho phiên bả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> 

Trong trường hợp lỗi, bạn có thể kiểm tra mã nguồn Plugin here.

+0

Tôi đã chuyển từ Java6 sang Java8, do đó tôi đã được yêu cầu nâng cấp 1.0-alpha-1 lên 1.0-beta-1. 1.0-beta-1 có 2 vấn đề (1) cú pháp pom xml đã thay đổi, không còn src và dest. (2) workDir mới hoạt động như thư mục src và dest, đó là sai, vì đầu ra sẽ ghi đè lên tệp nguồn đầu vào ban đầu. – oraclesoon

+0

https://davidsimpson.me/2015/03/04/automated-native2ascii-character-conversion-internationalization-atlassian-add-ons/ cho thấy 1.0-alpha-1 có thể được tái sử dụng với sự phụ thuộc vào Jdk6- tools.jar. – oraclesoon

+0

Tôi đang sử dụng '1.Phiên bản 0-beta-1' với tham số 'src' /' dest'. Ý tưởng IntelliJ phàn nàn về nó nhưng nó dường như làm việc cho tôi: http://stackoverflow.com/questions/36573916/how-to-get-rid-of-maven-plugin-configuration-error-in-intellij-idea – Felix

0

Hạn chế trong 1.0-beta-1 là cách tiếp cận với workDir. Tôi không muốn thay đổi mã nguồn của mình trong mỗi bản dựng, nhưng tôi vẫn cần một số công cụ để cung cấp mã hóa unicode cho các tệp thuộc tính của tôi.

Vì vậy, tôi đã giải quyết vấn đề với hai cấu hình:

  1. Set workdir với mục tiêu của dự án của bạn;
  2. Thay đổi pha thành thứ gì đó sau tài nguyên quy trình;

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

Tôi đã sử dụng giai đoạn 'biên dịch' từ IDE bên trong là một trong tôi sử dụng nhất.

Các vấn đề liên quan