四 打可执行的jar包
程序员文章站
2022-03-02 17:34:55
...
官方文档
java本身比较难做到jar包包含自己依赖的jar包,springboot可通过maven插件解决这个问题。
1 加入 spring-boot-maven-plugin
依赖到您的pom
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
说明:还有一些其他需要的配置已经被 spring-boot-starter-parent
帮忙配置了,如果您没有使用它,您需要自己配置
2 执行命令 mvn package
,控制台会输出
$ mvn package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building myproject 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] .... ..
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject ---
[INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] --- spring-boot-maven-plugin:2.1.3.RELEASE:repackage (default) @ myproject ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
注意:这里已经是运行的 repackage
命令了
这个时候你会在 target目录下面发现两个包,myproject-0.0.1-SNAPSHOT.jar
包是刚刚用repackage命令打出来的包,myproject-0.0.1-SNAPSHOT.jar.original
包是package打出来的原始的包。前者是可以直接运行的:java -jar target/myproject-0.0.1-SNAPSHOT.jar
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.3.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .
........ Started Example in 2.536 seconds (JVM running for 2.864)
您可以使用jar tvf myproject-0.0.1-SNAPSHOT.jar
去查看这两个包的结构,您会发现最大的区别是 repackage打出来的包在lib目录下已经引入了您pom中引入的其他依赖包。
下一章 五 spring-boot-starter-parent
转载于:https://www.jianshu.com/p/fba30fa9ab78
上一篇: Elasticsearch查询文档总数
下一篇: Make命令基础用法教程