2019独角兽企业重金招聘Python工程师标准>>>
以前用的是maven-assembly-plugin打uber-jar的形式,简单的Java项目一般都没什么问题,这次项目包含dubbo服务调用,包含了dubbo.jar,打包运行报错: Failed to read schema document from http://code.alibabatech.com/schema/dubbo/dubbo.xsd,打包时没有将配置文件一并打包到jar中,所以才会去网络上找这个xsd文件,于是找资料发现maven-assembly-plugin不会把相关配置文件打包进去,所以换一个插件,maven-shade-plugin,打包速度也比之前的快,推荐,配置插件代码如下:
<!--生成一个 uber-jar,它包含所有的依赖 jar 包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<!--将 goal shade:shade 绑定到 phase package 上-->
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<!--自动将所有不使用的类全部排除掉,将 uber-jar 最小化-->
<minimizeJar>true</minimizeJar>
<transformers>
<!--通过设置 MainClass 创建一个可执行 Jar 包。-->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.demo.Main</Main-Class>
</manifestEntries>
</transformer>
<!--把spring.handlers和spring.schemas文件以append方式加入到构建的jar包中,这样就不会出现xsd找不到的情况-->
<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>
</transformers>
</configuration>
</execution>
</executions>
</plugin>