springcloud手动打jar包详解
发布日期:2021-05-20 00:21:19 浏览次数:26 分类:精选文章

本文共 1515 字,大约阅读时间需要 5 分钟。

Spring Cloud项目打包步骤详解

父项目pom.xml文件配置

在父项目的pom.xml中,主要配置了以下内容以支持Spring Boot项目的打包和运行:

org.springframework.boot
spring-boot-maven-plugin
2.2.6.RELEASE
org.apache.maven.plugins
maven-compiler-plugin
3.8.1
8
8
src/main/resources
true
**/*.*

子项目配置

在子项目中,主要配置了以下内容以指定程序入口和打包目标:

org.springframework.boot
spring-boot-maven-plugin
com.make.study.MyBoot
repackage
src/main/resources
true

jar包打包问题详解

2.1 为何需指定mainClass

在进行项目打包时,如果存在多个主类(即带有main方法的类)且都使用了@SpringBootApplication注解,或者项目中存在多个主类但未使用该注解,系统将无法确定程序的入口。因此,需要手动指定mainClass,以明确程序的启动类。此外,这也会将指定的主类路径添加到打包后的MANIFEST.MF清单文件中。

主类配置

在pom.xml中设置mainClass标签时,可以选择以下几种布局:

  • JAR布局:清单文件中的Main-Class为org.springframework.boot.loader.JarLauncher
  • WAR布局:需要依赖Web容器的jar位于WEB-INF/lib-provided
  • ZIP布局:清单文件中的Main-Class为org.springframework.boot.loader.PropertiesLauncher
  • 模块布局:将所有依赖打包,除Spring Boot提供的
  • 无模块布局:将所有依赖打包,包括Spring Boot提供的

2.2 打包目标goal配置

在maven的打包阶段,可配置以下目标goal:

  • spring-boot:repackage:默认目标,在mvn package完成后,对生成的jar/war重新打包
  • spring-boot:run:执行Spring Boot应用
  • spring-boot:start:在集成测试阶段管理Spring Boot应用生命周期
  • spring-boot:stop:在集成测试阶段停止Spring Boot应用
  • spring-boot:build-info:生成Actuator使用的构建信息文件

打包时的依赖处理

在打包过程中,可通过配置资源过滤标签(filtering)来管理多环境下的资源替换。例如,在pom.xml中设置多个环境配置时,可通过profiles标签实现环境切换,并通过filtering标签替换特定环境标识符。

2.3 打包后的jar包结构

打包完成后的jar包一般包含以下内容:

  • 主类.class文件
  • 依赖库
  • 资源文件(如properties、xml等)
  • MANIFEST.MF清单文件
  • 启动类路径信息
上一篇:java生成word文件
下一篇:mysql主主复制——windows

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月30日 02时31分46秒