Java Maven shade插件,包括所有依赖项jar
在eclipse中使用maven打包jar时,我面临一个问题。我相信它只需要编译时所需的依赖类。。有些类在运行时是必需的,但它不包括这些类。是否有一种方法可以强制Maven在构建最终jar时包含所有依赖项jar/类Java Maven shade插件,包括所有依赖项jar,java,maven,maven-shade-plugin,Java,Maven,Maven Shade Plugin,在eclipse中使用maven打包jar时,我面临一个问题。我相信它只需要编译时所需的依赖类。。有些类在运行时是必需的,但它不包括这些类。是否有一种方法可以强制Maven在构建最终jar时包含所有依赖项jar/类 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <a
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<configuration>
<createDependencyReducedPom>true</createDependencyReducedPom>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<!-- <exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude> -->
</excludes>
</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass></mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
org.apache.maven.plugins
maven阴影插件
1.4
真的
*:*
META-INF/*.SF
包裹
阴凉处
这个对我很有用。我正在使用ApacheMaven shade插件
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<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>com.myname.sample_client.Application</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
org.apache.maven.plugins
maven编译器插件
1.6
1.6
org.apache.maven.plugins
maven阴影插件
包裹
阴凉处
META-INF/spring.handlers
META-INF/spring.com
META-INF/spring.schemas
com.myname.sample\u client.Application
- 注意我的是一个spring boot应用程序,所以我有变压器
编译和运行时的所有依赖项。你有没有试着去确认一个最小的示例项目是否不是这样?我刚刚发现所有的依赖项都打包好了。问题是我有一个SpringBeanXML配置文件,即使路径存在也找不到。然后我发现有一种方法可以在执行mvn包的过程中结合java+spring。我必须将以下内容添加到pom.xml中才能使其正常工作。META-INF/spring.handlers