2015-05-04 4 views
0

У меня есть проект maven. В /src/main/resources/ У меня есть два файла foo.properties и bar.xml. Первый кодируется в ISO-8859-1, а второй - в UTF-8.Фильтрация ресурсов с различными кодировками

Есть ли простой способ получить фильтрацию для обоих файлов без нарушения кодирования?

Насколько я вижу, я не могу указать кодировку в блоке <resource>. Кажется, только можно указать кодировку для самого плагина, но это приведет к тому, что оба файла будут отфильтрованы с использованием той же кодировки.

В идеале я хотел бы указать, что-то вроде:

  • * .properties -> фильтр с помощью ISO-8859-1
  • * .xml -> фильтр с использованием UTF-8
  • * .pdf -> не фильтровать
  • что-нибудь еще -> фильтр, использующий кодирование

по умолчанию Это не чувствует себя очень необычной ситуации, есть простой способ конфиг это?

+0

Что в вашем случае кодирования по умолчанию? UTF 8? – khmarbaise

+0

Да, в моем случае по умолчанию используется UTF8. В общем, для меня было бы неплохо иметь все в UTF8 и только исключение для файлов свойств. – michas

ответ

1

Сначала я хотел бы предложить, чтобы поставить эти ресурсы, которые изо основе в другой каталог, как src/main/iso-resources и использовать что-то вроде этого:

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <name>Resource Test</name> 

    <build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <configuration> 
      <nonFilteredFileExtensions> 
       <nonFilteredFileExtension>pdf</nonFilteredFileExtension> 
      </nonFilteredFileExtensions> 
      </configuration> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-resources-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>copy-iso-part</id> 
      <goals><goal>copy-resources</goal></goals> 
      <phase>process-resources</phase> 
      <configuration> 
       <encoding>ISO-8859-1</encoding> 
       <resources> 
       <resource> 
        <directory>src/main/iso-resources/</directory> 
       </resource> 
       </resources> 
       <outputDirectory>${project.build.outputDirectory}</outputDirectory> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
Смежные вопросы