maven-shade-plugin - не удается найти ресурс в классе org.apache.maven.plugins.shade.resource.ManifestResourceTransformer

Я скопировал конфигурацию плагина maven shade прямо из документации apache maven https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html

Это моя текущая установка:

      <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.1.0</version>
    <executions>
      <execution>
        <goals>
          <goal>shade</goal>
        </goals>
        <configuration>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <manifestEntries>
                <Main-Class>com.my.app.MainClass</Main-Class>
                <X-Compile-Source-JDK>1.8</X-Compile-Source-JDK>
                <X-Compile-Target-JDK>1.8</X-Compile-Target-JDK>
              </manifestEntries>
            </transformer>
            <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
                <resource>.properties</resource>
            </transformer>
            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                <resource>META-INF/spring.handlers</resource>
            </transformer>
            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                <resource>META-INF/spring.schemas</resource>
            </transformer>
            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                <resource>META-INF/spring.tooling</resource>
            </transformer>
            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                <resource>META-INF/spring.factories</resource>
            </transformer>              
          </transformers>
        </configuration>
      </execution>
    </executions>
  </plugin>

И я получаю следующую ошибку:

Я видел несколько вопросов об этой ошибке без ответа: оттенок для ресурса параметра: не удается найти 'ресурс' в классе org.apache.maven.plugins.shade.resource.ManifestResourceTransformer

Не удается найти «ресурс» в классе org .apache.maven.plugins.shade.resource.ManifestResourceTransformer

Кто-нибудь смог решить это или нашел причину?

Это сообщение решило мою проблему: https://github.com/spring-projects/spring-boot/issues/384


person Yakiv    schedule 11.03.2018    source источник
comment
Было бы здорово получить объяснение. Сообщение на github старое и ничего не объясняет. Сказав это, это решение действительно устранило мою проблему.   -  person John Red    schedule 17.04.2020


Ответы (2)


<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.handlers</resource>
                            </transformer>
                            <transformer
                                implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">
                                <resource>META-INF/spring.factories</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.schemas</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>${start-class}</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
Spring Boot имеет собственную конфигурацию maven-shade-plugin. Добавьте это свойство в свой pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.handlers</resource>
                            </transformer>
                            <transformer
                                implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">
                                <resource>META-INF/spring.factories</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.schemas</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>${start-class}</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
person Yakiv    schedule 11.03.2018
comment
[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins: maven-shade-plugin: 3.1.0: оттенок (по умолчанию) в проекте cpms-batch: невозможно проанализировать конфигурацию mojo org.apache.maven.plugins: maven -shade-plugin: 3.1.0: оттенок для ресурса параметра: не удается найти «ресурс» в классе org.apache.maven.plugins.shade.resource.ManifestResourceTransformer -> [Справка 1] org.apache.maven.lifecycle.LifecycleExecutionException: Не удалось выполнить цель org.apache.maven.plugins: maven-shade-plugin: 3.1.0: оттенок (по умолчанию) в проекте cpms-batch: невозможно проанализировать конфигурацию mojo org.apache.maven.plugins: maven-shade- плагин: 3.1.0: тень для ресурса параметра: не удается найти «ресурс» в классе org.apache.maven.plugins.shade.resource.ManifestResourceTransformer в org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java: 212) на org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:153) на org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java: 145) в org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:116) в org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.magava:80) .lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51) в org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128) в org.apache.maven.DefaultMaven. (DefaultMaven.java:307) на org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:193) на org.apache.maven.DefaultMaven.execute (DefaultMaven.java:106) на org.apache.maven.cli. MavenCli.execute (MavenCli.java:863) на org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288) на org.apache.maven.cli.MavenCli.main (MavenCli.java:199) на вс .reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAc cessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke (Method.java:498) в org.codehaus.plexus.classworlds. .launchEnhanced (Launcher.java:289) в org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229) в org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java: ) на org.codehaus.plexus.classworlds.launcher. Launcher.main (Launcher.java:356) Вызвано: org.apache.maven.plugin.PluginConfigurationException: невозможно проанализировать конфигурацию mojo org.apache.maven.plugins: maven-shade-plugin: 3.1.0: оттенок для параметра ресурс: не удается найти «ресурс» в классе org.apache.maven.plugins.shade.resource.ManifestResourceTransformer в org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields (DefaultMavenPluginManager.java:662) в org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields (DefaultMavenPluginManager.java:662). plugin.internal.DefaultMavenPluginManager.getConfiguredMojo (DefaultMavenPluginManager.java:594) в org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManagerEx.java:121) в org.life java: 207) ... еще 20 Причина: org.codehaus.plexus.component.configurator.ComponentConfigurationException: не удается найти «ресурс» в классе org.apache.maven.plugins.shade.resource.ManifestResourceTransformer в org.eclipse.sisu .plexus .CompositeBeanHelper.setProperty (CompositeBeanHelper.java:252) по адресу org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration (ObjectWithFieldsConverter.java:101) на orgxus.codeposentus.com .ObjectWithFieldsConverter.fromConfiguration (ObjectWithFieldsConverter.java:57) в org.codehaus.plexus.component.configurator.converters.composite.AbstractCollectionConverter.fromChildren (AbstractCollectionConverter.java:54) в org.converters.converters.composite.com .ArrayConverter.fromConfiguration (ArrayConverter.java:52) в org.eclipse.sisu.plexus.CompositeBeanHelper.convertProperty (CompositeBeanHelper.java:273) в org.eclipse.sisu.plexuse.CompositeBeanHelper2.positeProperty (CompositeBeanHelper2:10.set) org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration (ObjectWithFieldsConverter.java:101 ) в org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent (BasicComponentConfigurator.java:34) в org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields (Default6Manager) ... ] - person markthegrea; 09.04.2020

Spring Boot не требует подключаемого модуля Maven Shade: stackoverflow.com/a/43613830/3810038

<properties>
  <start-class>com.lionmint.core.test.integration.apns.mock.MockAPNSServer</start-class>
</properties>
person memcpy    schedule 05.04.2018