Как избежать кодировки UTF-8 для двоичного файла с плагином maven-resources? - PullRequest
11 голосов
/ 27 апреля 2011

Я использую плагин maven-resources-plugin для копирования некоторых ресурсов из моего проекта, но один из моих ресурсов - это двоичный файл. Выходные данные говорят, что это Using 'UTF-8' encoding to copy filtered resources, что я моя проблема !!!

Вот моя конфигурация плагина.

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.5</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <!-- here the phase you need -->
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/autopublisher</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/autopublisher</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Можно ли пропустить преобразование UTF-8 для двоичных файлов?

Спасибо.

Ответы [ 4 ]

19 голосов
/ 27 апреля 2011

Ну, чтобы решить мою проблему, я добавил это в свою конфигурацию двоичная фильтрация maven :

<nonFilteredFileExtensions>                            
    <nonFilteredFileExtension>dcm</nonFilteredFileExtension>
</nonFilteredFileExtensions>
3 голосов
/ 27 апреля 2011

Установите два отдельных элемента <resource>, один с <filtering>false</filtering>, а другой с <filtering>true</filtering>.Используйте элементы <includes> и <excludes> <resource>, чтобы исключить двоичные файлы по расширению из одного из них.

Однако плагин ресурсов становится умнее, например, исключая изображения, поэтому убедитесь, что выиспользуйте последнюю версию.

2 голосов
/ 04 ноября 2013

Я столкнулся с похожей ситуацией, когда плагин непреднамеренно обрабатывал двоичный файл (хорошо сочетающий txt и двоичные данные), что делало его непригодным для использования в конце.

Чтобы решить эту проблему, мне просто нужно было сделать фильтрацию немного более четкой в ​​отношении того, какие типы файлов фильтровать и оставить все остальные без изменений, см. Ниже:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>filter-config-files</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration><outputDirectory>${project.build.directory}/config-filtered</outputDirectory>
                        <resources>
                            <resource>
                                <directory>${project.build.directory}/nar/${project.name}-${project.version}-noarch</directory>

                                <!-- enabling filetering ONLY on these file types --> 
                                    <filtering>true</filtering>
                                    <includes>
                                        <include>**/*.xml</include>
                                        <include>**/*.sh</include>
                                    </includes>
                                </resource>
                                <resource>
                                    <directory>${project.build.directory}/nar/${project.name}-${project.version}-noarch</directory>
<!-- now excluding filtering on ALL OTHER file types but still including them in the archive -->
                                            <filtering>false</filtering>
                                            <includes>
                                                <include>**/*</include>
                                            </includes>
                                        </resource>
                                    </resources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
1 голос
/ 21 октября 2014

Для скомпилированного двоичного файла, который не имеет расширения (он запускается на сервере сборки RHEL для некоторых тестов компонентов), добавили расширение файла для версии Linux, под которой он должен был работать, и использовали ответ code-gijoe выше, чтобы убедиться, чтоmaven не "фильтровал" это:

<nonFilteredFileExtensions>                            
    <nonFilteredFileExtension>rhel</nonFilteredFileExtension>
</nonFilteredFileExtensions>
...