maven 插件: maven-shade-plugin 可执行jar 配置

梦里梦外; 2022-05-27 11:14 408阅读 0赞

要使用 shade 插件,必须在 pom 进行如下配置:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-shade-plugin</artifactId>
  4. <version>1.4</version>
  5. <executions>
  6. <execution>
  7. <phase>package</phase>
  8. <goals>
  9. <goal>shade</goal>
  10. </goals>
  11. <configuration>
  12. <transformers>
  13. <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  14. <resource>META-INF/spring.handlers</resource>
  15. </transformer>
  16. <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  17. <!--自己的main方法路径-->
  18. <mainClass>com.chenzhou.examples.Main</mainClass>
  19. </transformer>
  20. <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  21. <resource>META-INF/spring.schemas</resource>
  22. </transformer>
  23. </transformers>
  24. </configuration>
  25. </execution>
  26. </executions>
  27. </plugin>

上面配置文件中有一段定义:

  1. <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  2. <resource>META-INF/spring.handlers</resource>
  3. </transformer>
  4. <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  5. <resource>META-INF/spring.schemas</resource>
  6. </transformer>

上面这段配置意思是把 spring.handlers 和 spring.schemas 文件以 append 方式加入到构建的 jar 包中,这样就不会出现 xsd 找不到的情况。

配置完 pom 后,调用 mvn clean install 命令进行构建,构建成功后打开工程 target 目录,发现生成了 2 个 jar 包,一个为:original-XXX-0.0.1-SNAPSHOT.jar,另一个为:XXX-0.0.1-SNAPSHOT.jar,其中 original…jar 里只包含了工程自己的 class 文件,而另外的一个 jar 包则包含了工程本身以及所有依赖的 jar 包的 class 文件。我们只需要使用第二个 jar 包就可以了。

发表评论

表情:
评论列表 (有 0 条评论,408人围观)

还没有评论,来说两句吧...

相关阅读