Maven: не удалось выполнить цель org.apache.maven.plugins:maven-resources-plugin:2.7:resources

Я строю свой проект с использованием Maven. Моя версия maven - apache-maven-3.0.4. Я использую Eclipse Luna. Когда я пытаюсь построить свой проект, я получаю следующую ошибку

[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins:maven-resources-plugin:2.7: ресурсы (default-resources) в проекте OrionCommunity: пометить недействительным -> [Help 1].

Ниже приведена трассировка стека при запуске mvn clean install -X:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:53.295s
[INFO] Finished at: Thu Oct 09 20:00:26 IST 2014
[INFO] Final Memory: 9M/25M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources (default-resources) on project OrionCommunity: Mark invalid -> [Hel
p 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources (default-resources)
 on project OrionCommunity: Mark invalid
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Mark invalid
        at org.apache.maven.plugin.resources.ResourcesMojo.execute(ResourcesMojo.java:306)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        ... 19 more
Caused by: org.apache.maven.shared.filtering.MavenFilteringException: Mark invalid
        at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:129)
        at org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering.filterResources(DefaultMavenResourcesFiltering.java:264)
        at org.apache.maven.plugin.resources.ResourcesMojo.execute(ResourcesMojo.java:300)
        ... 21 more
Caused by: java.io.IOException: Mark invalid
        at java.io.BufferedReader.reset(BufferedReader.java:485)
        at org.apache.maven.shared.filtering.MultiDelimiterInterpolatorFilterReaderLineEnding.read(MultiDelimiterInterpolatorFilterReaderLineEnding.java:416)
        at org.apache.maven.shared.filtering.MultiDelimiterInterpolatorFilterReaderLineEnding.read(MultiDelimiterInterpolatorFilterReaderLineEnding.java:205)
        at java.io.Reader.read(Reader.java:123)
        at org.apache.maven.shared.utils.io.IOUtil.copy(IOUtil.java:181)
        at org.apache.maven.shared.utils.io.IOUtil.copy(IOUtil.java:168)
        at org.apache.maven.shared.utils.io.FileUtils.copyFile(FileUtils.java:1856)
        at org.apache.maven.shared.utils.io.FileUtils.copyFile(FileUtils.java:1804)
        at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:114)
        ... 23 more

Мой репозиторий maven находится под D:/mavenrepo. Я полностью удалил все банки, присутствующие в репо, и сделал чистую установку. Но я все еще получаю эту ошибку.

13 ответов

С:

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.7</version>
        </plugin>

Получал следующее исключение:

...
Caused by: org.apache.maven.plugin.MojoExecutionException: Mark invalid
    at org.apache.maven.plugin.resources.ResourcesMojo.execute(ResourcesMojo.java:306)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
    ... 25 more
Caused by: org.apache.maven.shared.filtering.MavenFilteringException: Mark invalid
    at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:129)
    at org.apache.maven.shared.filtering.DefaultMavenResourcesFiltering.filterResources(DefaultMavenResourcesFiltering.java:264)
    at org.apache.maven.plugin.resources.ResourcesMojo.execute(ResourcesMojo.java:300)
    ... 27 more
Caused by: java.io.IOException: Mark invalid
    at java.io.BufferedReader.reset(BufferedReader.java:505)
    at org.apache.maven.shared.filtering.MultiDelimiterInterpolatorFilterReaderLineEnding.read(MultiDelimiterInterpolatorFilterReaderLineEnding.java:416)
    at org.apache.maven.shared.filtering.MultiDelimiterInterpolatorFilterReaderLineEnding.read(MultiDelimiterInterpolatorFilterReaderLineEnding.java:205)
    at java.io.Reader.read(Reader.java:140)
    at org.apache.maven.shared.utils.io.IOUtil.copy(IOUtil.java:181)
    at org.apache.maven.shared.utils.io.IOUtil.copy(IOUtil.java:168)
    at org.apache.maven.shared.utils.io.FileUtils.copyFile(FileUtils.java:1856)
    at org.apache.maven.shared.utils.io.FileUtils.copyFile(FileUtils.java:1804)
    at org.apache.maven.shared.filtering.DefaultMavenFileFilter.copyFile(DefaultMavenFileFilter.java:114)
    ... 29 more



Затем он исчез после добавления maven-filtering 1.3:

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

Удали эту работу для меня:

<filtering>true</filtering>

Я думаю, это вызвано этой ошибкой фильтрации

У меня тоже была эта проблема, потому что я фильтровал /src/main/resources и забыл, что я добавил двоичный файл хранилища ключей (*.jks) в этот каталог.

Добавьте блок "ресурс" с исключениями для двоичных файлов, и ваша проблема может быть решена.

<build>
  <finalName>somename</finalName>
  <testResources>
    <testResource>
      <directory>src/test/resources</directory>
      <filtering>false</filtering>
    </testResource>
  </testResources>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
      <excludes>
        <exclude>*.jks</exclude>
        <exclude>*.png</exclude>
      </excludes>        
    </resource>
  </resources>
...

То, что сработало для меня, это добавить тег включения, чтобы точно указать, что я хочу фильтровать.

Похоже, что плагин ресурсов имеет проблемы с прохождением всей папки src/main/resource, возможно, из-за некоторых определенных файлов внутри.

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
            <includes>
                <include>application.yml</include>
            </includes>
        </resource>
    </resources>

Я исправил ту же проблему, сославшись на последнюю версию плагина ресурсов maven:

      <dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.2.0</version>
</dependency>

Из официальной документации

Предупреждение: не фильтруйте файлы с бинарным содержимым, например изображения! Это, скорее всего, приведет к повреждению вывода.

Если у вас есть как текстовые, так и двоичные файлы в качестве ресурсов, рекомендуется иметь две отдельные папки. Одна папка src / main / resources (по умолчанию) для ресурсов, которые не фильтруются, и другая папка src / main / resources-Filter для ресурсов, которые фильтруются.

<project>
  ...
  <build>
    ...
    <resources>
      <resource>
        <directory>src/main/resources-filtered</directory>
        <filtering>true</filtering>
      </resource>
      ...
    </resources>
    ...
  </build>
  ...
</project>

Теперь вы можете поместить эти файлы в src / main / resources, которые не должны фильтроваться, а остальные файлы - в src / main / resources-Filter.

Как уже упоминалось, фильтрация двоичных файлов, таких как изображения, PDF и т. Д., Может привести к повреждению вывода. Чтобы предотвратить такие проблемы, вы можете настроить расширения файлов, которые не будут фильтроваться.

Скорее всего, в вашем каталоге есть файлы, которые нельзя отфильтровать. Таким образом, вы должны указать расширения, которые не были отфильтрованы.

В моем случае targetPath не имел никакого значения, это было пустым в resources --> resource для файла directory с файлами, которые имели проблему. Я должен был обновить его до global как видно из Code Sample 2 и перезапустите сборку, чтобы устранить проблему.

Пример кода 1 (с проблемой)

<build>
    <resources>
        <resource>
            <directory>src/main/locale</directory>
            <filtering>true</filtering>
            <targetPath></targetPath>
            <includes>
                <include>*.xml</include>
                <include>*.config</include>
                <include>*.properties</include>
            </includes>
        </resource>
    </resources>

Пример кода 2 (исправление применено)

<build>
    <resources>
        <resource>
            <directory>src/main/locale</directory>
            <filtering>true</filtering>
            <targetPath>global</targetPath>
            <includes>
                <include>*.xml</include>
                <include>*.config</include>
                <include>*.properties</include>
            </includes>
        </resource>
    </resources>

У меня была такая же ошибка из-за символа '@' в моих ресурсах /application.properties. Все, что я сделал, это заменил символ @ на его значение в Юникоде: eureka.client.serviceUrl.defaultZone=http://discUser:discPassword\u0040localhost:8082/eureka/и это работало как шарм. Я знаю, что '@' является совершенно допустимым символом в файлах.properties, и файл был в кодировке UTF-8, и это заставляет меня сомневаться в моей карьере до сегодняшнего дня, но стоит попробовать, если вы удалите содержимое своих файлов ресурсов, чтобы увидеть, если вы может пройти эту ошибку.

В моем случае это был конфликт с IntelliJ, я решил его, собрав проект из командной строки, и он заработал!

Я решил это, изменив формат кодирования файлов ресурсов на UTF-8

Я столкнулся с той же проблемой и сделал фильтрацию false, как показано ниже, для меня. Вы можете попробовать то же самое...

<testResources>
    <testResource>
        <directory>src/test/java</directory>
        <filtering>false</filtering>
    </testResource>
    <testResource>
        <directory>src/test/resources</directory>
        <filtering>false</filtering>
    </testResource>
</testResources>

Это могло быть проблемой в домашнем пути mvn в IntellijIdea IDE. Для меня это сработало, когда я правильно установил домашний каталог mvn.

Спасибо за все предложения. Я использую temurin-11.jdk и Spring-Boot 2.7.5. Я решил пойти по пути обновления плагина.

Моя исходная ошибка:

      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.7:resources 
(default-resources) on project my-app: Mark invalid -> [Help 1]

После обновления моего pom следующим образом:

У меня есть этот бит ресурсов в моем разделе сборки:

      <resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>

И тогда это мое определение плагина:

      <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-resources-plugin</artifactId>
  <version>3.3.0</version>
  <configuration>
    <delimiters>
      <delimiter>@</delimiter>
    </delimiters>
    <useDefaultDelimiters>false</useDefaultDelimiters>
  </configuration>
</plugin>

Я получил новую ошибку:

      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.3.0:resources 
(default-resources) on project my-app: filtering /Users/me/IntelliJ_Workspace/my-app/my-app/src/main/resources/static/fonts/glyphicons-halflings-regular.woff 
to /Users/me/IntelliJ_Workspace/my-app/my-app/target/classes/static/fonts/glyphicons-halflings-regular.woff 
failed with MalformedInputException: Input length = 1 -> [Help 1]

Как видите, расширение файла .woff содержит как минимум 1 соответствующий разделитель, но не может быть проанализировано. В моем случае я не хочу фильтровать ничего, кроме.properties&.yamlфайлы. Прочитав документы maven-resources-plugin/resources, я обнаружил, что есть конфигурация nonFilteredFileExtensions, где мы можем исключить расширения файлов, которые мы не хотим фильтровать. Итак, моя окончательная конфигурация плагина выглядит так:

      <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-resources-plugin</artifactId>
  <version>3.3.0</version>
  <configuration>
    <delimiters>
      <delimiter>@</delimiter>
    </delimiters>
    <useDefaultDelimiters>false</useDefaultDelimiters>
 <nonFilteredFileExtensions>jpg,jpeg,gif,bmp,png,svg,ttf,woff,woff2</nonFilteredFileExtensions>
  </configuration>
</plugin>
Другие вопросы по тегам