Maven: Как настроить native2ascii-maven-plugin

Я уволил этот вопрос у вас, ребята, поскольку сама страница проекта не имеет большого количества информации. В основном, я устанавливаю плагин native2ascii-maven для обработки некоторых моих ресурсов. Он отлично работает для обработки файлов в корневом каталоге. Но теперь у меня есть файлы в подкаталоге: /template/email/ и хотели бы, чтобы они были включены в обработку. Можете ли вы, ребята, помочь мне?

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

Спасибо, куча!!

Ответ 1

Вам нужно определить раздел выполнения для каждой папки, которую вы хотите обработать, и переместить 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>

Ответ 2

Вот решение для "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>
            [...]

Ответ 3

Вот пример конфигурации для версии 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>

В случае ошибки вы можете проверить исходный код плагина здесь.

Ответ 4

Недавно я создал еще одну версию плагина native2ascii maven, который охватывает использование как старых версий, так и содержит файлы XML, используемые плагином m2e Eclipse: https://github.com/dmatej/native2ascii/releases

Мне нужно заставить кого-то поместить его в официальные репозитории maven... но вы все равно можете использовать его в своих собственных.

Ответ 5

Недостатком в 1.0-beta-1 является подход с workDir. Я не хочу менять исходный код в каждой сборке, но мне по-прежнему нужен какой-то инструмент для обеспечения анонимности unicode для моих файлов свойств.

Итак, я решил проблему с двумя настройками:

  • Задайте workDir для целевой цели проекта;
  • Измените фазу на что-то после технологических ресурсов;

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

Я использовал фазу 'compile', так как внутри IDE я использую больше всего.