maven-plugin-shade 是 Maven 的一个插件,它的作用是将多个 jar 包合并成一个 jar,同时将其中的依赖关系也合并到该 jar 中。这个插件常用于创建可执行 jar 包和打包 web 应用程序。
下面是 maven-plugin-shade 的一些常用配置:
-
打包的形式:可以设置打包成一个可执行的 jar 包或者一个普通的 jar 包。
-
排除依赖:可以设置排除某些依赖,避免重复打包。
-
过滤资源:可以通过配置来过滤掉一些不需要打包的资源。
-
重新定位依赖:如果合并后的依赖不能与原来的 jar 包兼容,可以通过重新定位的方式来解决。
-
转换类文件:可以对 class 文件进行转换,比如修改包名或类名等。
使用 maven-plugin-shade 打包 jar 包的步骤如下:
-
在 pom.xml 文件中添加 maven-shade-plugin 插件。
-
配置要合并的 jar 包以及排除的依赖、过滤资源等信息。
-
运行 Maven 命令进行打包。
示例:
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><version>3.2.1</version><configuration><createDependencyReducedPom>true</createDependencyReducedPom><shadedArtifactAttached>true</shadedArtifactAttached><shadedClassifierName>executable</shadedClassifierName><transformers><transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"><mainClass>${mainClass}</mainClass></transformer></transformers><filters><filter><artifact>*:*</artifact><excludes><exclude>META-INF/*.SF</exclude><exclude>META-INF/*.DSA</exclude><exclude>META-INF/*.RSA</exclude></excludes></filter></filters></configuration></plugin></plugins>
</build>
在配置中,我们设置了要创建一个可执行的 jar 包,并指定了 mainClass。同时,我们设置了过滤规则,排除了一些不需要打包的文件。
运行 Maven 命令 mvn package
进行打包,就会在 target 目录下生成一个可执行的 jar 包。