Отключить фильтрацию ресурсов для maven-remote-resources-plugin

Я пытаюсь использовать плагин maven-remote-resources-plugin для совместного использования ряда ресурсов между модулями в многомодульном проекте maven. К сожалению, общие двоичные ресурсы повреждаются во время объединения, предположительно, путем фильтрации.

Я уверен, что на данном этапе происходит повреждение, поскольку извлечение jar с общими ресурсами из моего локального репозитория содержит поврежденные двоичные файлы.

Есть ли возможность отключить фильтрацию для maven-remote-resources-plugin?

На данный момент pom в моем модуле общих ресурсов выглядит так

<build>
  <plugins>
    <plugin>
       <artifactId>maven-remote-resources-plugin</artifactId>
       <executions>
         <execution>
           <goals>
             <goal>bundle</goal>
           </goals>
         </execution>
       </executions>
       <configuration>
         <includes>
           <include>**/*</include>
         </includes>
       </configuration>
     </plugin>
  </plugins>
</build>

<dependencies>
  <dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-remote-resources-plugin</artifactId>
    <version>1.3</version>
  </dependency>
</dependencies>

person TaninDirect    schedule 02.10.2012    source источник
comment
Вы имеете в виду maven-remote-resources-plugin? Публикация соответствующих фрагментов из вашего pom.xml может помочь привлечь ответы.   -  person Duncan Jones    schedule 02.10.2012
comment
Спасибо @DuncanJones, это правильно. Я исправил опечатку и добавил соответствующие части pom   -  person TaninDirect    schedule 03.10.2012


Ответы (3)


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

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <executions>
      <execution>
        <id>default-resources</id>
        <configuration>
          <nonFilteredFileExtensions>
            <nonFilteredFileExtension>exe</nonFilteredFileExtension>
            <nonFilteredFileExtension>dontFilterMeEither</nonFilteredFileExtension>
          </nonFilteredFileExtensions>
          [...]
        </configuration>
      </execution>
    </executions>
  </plugin>

В документах описано, какие двоичные файлы не фильтруются. по умолчанию; конфигурация выше добавляет расширения в список.

person user944849    schedule 02.10.2012
comment
Это плагин, отличный от того, который я использовал (опечатка исправлена ​​в вопросе), поэтому не могли бы вы заполнить [...] в конфигурации выше. - person TaninDirect; 03.10.2012
comment
Что означает user944849, так это то, что используются оба плагина, поскольку maven-resources-plugin по умолчанию привязан к жизненному циклу. Таким образом, может случиться так, что maven-resources-plugin также повреждает ваши файлы, поэтому вы должны защитить свои файлы от обоих и добавить приведенную выше конфигурацию как есть. - person Samuel EUSTACHI; 03.10.2012
comment
Спасибо @SamuelEUSTACHI, точно. :-) - person user944849; 03.10.2012

ты пробовал :

<plugin>
        <artifactId>maven-remote-resources-plugin</artifactId>
        <version>1.3</version>
        <executions>
          <execution>
            <id>process-remote-resources</id>
            <goals>
              <goal>process</goal>
            </goals>
            <configuration>
              <useDefaultFilterDelimiters>false</useDefaultFilterDelimiters>
              [...]
            </configuration>
          </execution>
        </executions>
      </plugin>
person Samuel EUSTACHI    schedule 02.10.2012
comment
Я попробовал это, и, к сожалению, двоичные файлы все еще повреждены во время сборки. - person TaninDirect; 03.10.2012

Подход, который мы использовали для решения этой проблемы, описан ниже.
Примечание. Я неправильно понял ответ пользователя 944849, поэтому я не проверял его, и он может работать.

Мы создали банку в локальном репозитории напрямую, используя пункт ресурсов в pom общих ресурсов. Я думаю, что это использует плагин maven-resources (?).

Затем использовал плагин maven-dependency-plugin, чтобы распаковать его во временный каталог и отфильтровал нужные ресурсы в разделе ресурсов pom-потребителя ресурсов.

общие ресурсы

<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>false</filtering>
      <includes>
        <include>**/*</include>
      </includes>
    </resource>
  </resources>
</build>

потребитель ресурсов

<build>
  <resources>
    <resource>
      <directory>${project.build.directory}/shared-resources</directory>
      <includes>
        <include>theOnlyOneIWant.properties</include>
      </includes>
    </resource>
  </resources>
  [...]
  <plugins>
    <plugin>
      <artifactId>maven-dependency-plugin</artifactId>
      <version>2.5</version>
      <executions>
        <execution>
          <id>shared-resources</id>
          <goals>
            <goal>unpack-dependencies</goal>
          </goal>
          <phase>generate-resources</phase>
          <configuration>
            <includeGroupIds>myProjectGroup</includeGroupIds>
            <includeArtifactIds>myProjectSharedResources</includeArtifactIds>
            <outputDirectory>${project.build.directory}/shared-resources</outputDirectory>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

Это может работать не во всех случаях, когда можно использовать плагин maven-remote-resources-plugin, но он работает для нас и решает проблему повреждения двоичных ресурсов.

person TaninDirect    schedule 04.10.2012