Yak*_*kiv 4 maven maven-shade-plugin spring-boot
我直接从apache maven文档https://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html复制了maven shade插件的配置
这是我目前的设置:
<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>
Run Code Online (Sandbox Code Playgroud)
我收到了以下错误:
[错误]无法执行目标org.apache.maven.plugins:maven-shade-plugin:3.1.0:shamp(默认)项目cpms-batch:无法解析mojo的配置org.apache.maven.plugins:maven -shade-plugin:3.1.0:参数资源的阴影:在类org.apache.maven.plugins.shade.resource.ManifestResourceTransformer中找不到'resource' - > [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException:无法执行目标org.apache.maven.plugins:maven-shade-plugin:3.1.0:shamp(默认)项目cpms-batch:无法解析mojo的配置org.apache.maven.plugins:maven-shade-插件:3.1.0:参数资源的阴影:无法在org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java)的org.apache.maven.plugins.shade.resource.ManifestResourceTransformer类中找到'resource'. 212)org.apache.maache.life.internal.MojoExecutor.execute(MojoExecutor.java:153)org.apache.maache.life.internal.MojoExecutor.execute(MojoExecutor.java:145)org.apache.m上的org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)aven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)位于org.apache.maven.life.internal.builder的org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80). singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)org.apache.maven.DefaultMaven.doExecute(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)at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)at sun.reflect.NativeMethodAccessorImpl.invoke0( sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces)sorImpl.java:43)在org.codehaus.plexus的org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)的java.lang.reflect.Method.invoke(Method.java:498) .classworlds.launcher.Launcher.launch(Launcher.java:229)org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)at 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:shade for parameter resource:不能在org.apache.maven.plugin.internal上的org.apache.maven.plug.sternal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:662)的org.apache.maven.plugins.shade.resource.ManifestResourceTransformer类中找到'resource' .DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:594)org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPlug)inManager.java:121)org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)... 20更多引起:org.codehaus.plexus.component.configurator.ComponentConfigurationException:找不到' org.codehaus.plexus.component中的org.eapp.sisu.plex上的org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty(CompositeBeanHelper.java:252)中的org.apache.maven.plugins.shade.resource.ManifestResourceTransformer中的资源'orc.codehaus.plexus.component.confonent.converters.composite位于org.codehaus.plexus.component.confonent.converters. .AbstractCollectionConverter.fromChildren(AbstractCollectionConverter.java:54)位于org.eclipse.sisu.plexus.CompositeBeanHelp的org.codehaus.plexus.component.configurator.converters.composite.ArrayConverter.fromConfiguration(ArrayConverter.java:52)org.eclipse.sisu.plexus.CompositeBeanHelper.setProperty(CompositeBeanHelper.java:210)中的er.convertProperty(CompositeBeanHelper.java:273)位于org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration(ObjectWithFieldsConverter. java:101)atg.caphaus.plexus.component.configureComponent的一个org.cadhaus.plexus.component.configure.confit上的org.apache.maven.polurator.configure.BericComponent.FopginPinginFields(DefaultMavenPluginManager.java:632)... 23更多[错误]
我已经看到有关该错误的多个问题没有答案: 参数资源的阴影:在类org.apache.maven.plugins.shade.resource.ManifestResourceTransformer中找不到'资源'
在类org.apache.maven.plugins.shade.resource.ManifestResourceTransformer中找不到'resource'
有人能够解决它或找到原因吗?
Yak*_*kiv 13
这篇文章解决了我的问题:https: //github.com/spring-projects/spring-boot/issues/384
<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>
Run Code Online (Sandbox Code Playgroud)
Ing*_*vea 12
这听起来很愚蠢,但你需要在你的阴影插件配置中添加一个id 和一个阶段(我不知道为什么,但它有效)
<executions>
<execution>
<id>shade-jar-with-dependencies</id>
<phase>package</phase>
<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>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
Run Code Online (Sandbox Code Playgroud)
小智 11
Spring Boot 有自己的 maven-shade-plugin 配置。将此属性添加到您的 pom.xml 中:
<properties>
<start-class>com.lionmint.core.test.integration.apns.mock.MockAPNSServer</start-class>
</properties>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8156 次 |
| 最近记录: |