当前位置:   article > 正文

Maven 各种花式构建,不用 SpringBoot 也能打出可执行 Jar 包_maven打jar非springboot

maven打jar非springboot

 

 

Spring Boot 的打包插件用着很爽吧,直接把源码和所有依赖打成一个 Jar 包还能直接java -jar运行。那如果非 Spring Boot 项目,想打成一个可执行的 Jar 包该怎么办呢?​

别慌,Maven 这种老牌构建工具,搞定这个事情还不是轻轻松松!​

下面介绍一些其他的 Maven 插件,同样可以直接将 Maven 项目打包成一个可执行的 Jar 包(uber jar/executable jar),而且功能更强大,应用场景更丰富!​

maven-dependency-plugin

maven-dependency-plugin是 Maven 的一个内置插件,从名字就能看出来,它的功能就是处理依赖的。内置了很多目标(goals),功能非常全:

  • dependency:copydependency:copy-dependencies
  • dependency:unpack
  • dependency:unpack-dependencies
  • dependency:resolve
  • dependency:sources
  • dependency:resolve-plugins
  • dependency:go-offline
  • dependency:purge-local-repository
  • dependency:analyze
  • dependency:analyze-dep-mgt
  • dependency:analyze-report
  • dependency:tree
  • dependency:build-classpath
  • dependency:list-repositories
  • dependency:get

通过 unpack-dependencies 这个目标来解压依赖的包/源码,就可以完成一个 all-in-one 的打包方式:

  1. <plugin>
  2. <groupId>org.apache.maven.plugins</groupId>
  3. <artifactId>maven-dependency-plugin</artifactId>
  4. <executions>
  5. <execution>
  6. <id>unpack-dependencies</id>
  7. <!-- 绑定到 prepare-package 阶段 -->
  8. <phase>prepare-package</phase>
  9. <goals>
  10. <goal>unpack-dependencies</goal>
  11. </goals>
  12. <configuration>
  13. <includeScope>runtime</includeScope>
  14. <outputDirectory>${project.build.outputDirectory}</outputDirectory>
  15. </configuration>
  16. </execution>
  17. </executions>
  18. </plugin>

这个 unpack 的方式,会把所有依赖包(内部模块依赖和外部模块依赖)都“解压”,就是说会把依赖包的代码(class)都拷贝到 outputDirectory 目录里,类似一个合并的操作,结果就像这样: 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/522546
推荐阅读
相关标签
  

闽ICP备14008679号