当前位置: 首页 > ai >正文

FatJar打包和FatJar启动配置文件修改。

一、FatJar打包和FatJar启动配置文件修改。
打成FatJar pom配置文件。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<target>1.8</target>
<source>1.8</source>
</configuration>
</plugin>
</plugins>
</build> 

1. ​​spring-boot-maven-plugin​​
​​作用​​:这是Spring Boot项目的核心插件,主要用于打包和运行Spring Boot应用。
​​打包可执行JAR​​:默认情况下,Maven打包生成的JAR文件不包含依赖库(仅包含项目代码),而该插件会将所有依赖库和项目代码打包成一个​​可执行的Fat JAR​​(包含BOOT-INF目录和嵌入式Tomcat等),使得应用可以通过java -jar命令直接运行。
​​支持Spring Boot特性​​:例如自动配置、内嵌服务器等。
​​生命周期集成​​:在Maven的package阶段自动执行打包逻辑,无需额外配置。

2. ​​maven-compiler-plugin​​
​​作用​​:控制Java源代码的编译行为。
​​编码设置​​:<encoding>UTF-8</encoding>指定源码文件的编码格式,避免因编码不一致导致的编译错误(如中文乱码)。
​​JDK版本兼容性​​:
<source>1.8</source>:指定编译器使用Java 8语法解析源代码。
<target>1.8</target>:确保生成的字节码兼容Java 8运行时环境。
这两个配置共同保证项目在Java 8环境下编译和运行,避免因高版本JDK默认行为导致的兼容性问题。


二、FatJar介绍
检查JAR文件内的META-INF/MANIFEST.MF文件是否包含正确的Main-Class属性,并确认其指向实际存在的类名(包括完整包路径)。对于Spring Boot项目,主类通常是org.springframework.boot.loader.JarLauncher。
​​类路径问题​​:如果应用程序依赖其他库,确保这些库也位于类路径中。可以使用-cp参数指定额外的类路径元素。
​​JAR文件结构问题​​:使用jar tf yourJar.jar命令检查JAR文件内容,确保主类文件存在。


三、服务启动时,配置文件修改。
1.一般只能外挂spring.config.location配置文件。
# 启动服务
echo -e "Starting the task..."
nohup java -jar -Dtsf_consul_ip=ip -Dtsf_consul_port=8500 -Dtsf_application_id=a -Dtsf_group_id=b -Dtsf_token=c -Dtsf_app_id=d -Dtsf.swagger.enabled=false main-1.0.0-SNAPSHOT.jar  --spring.config.location=application.properties,application-dameng.properties  >main.log 2>&1 &


2.如果要修改其他的一些配置文件,可以在BOOT-INF/classes目录定义好文配置文件,然后推送到jar包当中。或者可以直接vi jar包,找到对应的文件路径,进行修改。
jar xf your-app.jar BOOT-INF/classes/config.yml  # 提取
vim BOOT-INF/classes/config.yml                 # 修改
jar uf your-app.jar BOOT-INF/classes/config.yml # 更新


可以利用vi命令直接修改FatJar内的文件。​
可以直接准备一个BOOT-INF/classes,将配置文件等放到这个下面,然后将配置文件推到jar包文件里。
# 更新回 Jar 包
jar uf your-app.jar BOOT-INF/classes/application.properties


其他:
指定classpath,指定启动类
/usr/local/jdk1.8.0_121/bin/java -Xms64m -Xmx800m -XX:MaxPermSize=256M -XX:MaxDirectMemorySize=512m -classpath $CONF_DIR:$LIB_DIR/* cn.xxx.MainApplication >/dev/null 2>&1 &

三种打包配置:
<!-- 会打成FatJar包 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

<!-- 跳过打包,不生成FatJar -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<skip>true</skip> <!-- 关键配置:跳过打包 -->
</configuration>
</execution>
</executions>
</plugin>

<!-- 禁用springboot打一个大包插件 -->
<!-- 生成tar.gz,保留普通的jar,可进行jar包增量更新 -->
<!-  配合maven-assembly-plugin,进行自定义打包规则 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>

http://www.xdnf.cn/news/15309.html

相关文章:

  • 对偶原理与蕴含定理
  • [论文阅读] 人工智能 + 软件工程 | 用大语言模型+排名机制,让代码评论自动更新更靠谱
  • Ubuntu22.04 python环境管理
  • 深度解析:htmlspecialchars 与 nl2br 结合使用的前后端协作之道,大学毕业论文——仙盟创梦IDE
  • nginx:SSL_CTX_use_PrivateKey failed
  • 【HTTP版本演变】
  • Python 数据建模与分析项目实战预备 Day5 - 模型训练与评估
  • 九、官方人格提示词汇总(中-1)
  • (LeetCode 每日一题) 1290. 二进制链表转整数 (链表+二进制)
  • Kafka 时间轮深度解析:如何O(1)处理定时任务
  • 前端docx库实现将html页面导出word
  • 【第一章编辑器开发基础第二节编辑器布局_3间距控制(4/4)】
  • Java 大视界 -- 基于 Java 的大数据可视化在城市地下管网管理与风险预警中的应用
  • 显示器核心三要素详解:刷新率、分辨率、色深
  • SpringBoot-26-企业云端开发实践之Vue框架状态管理VueX和数据模拟MockJS
  • 从零构建搜索引擎 build demo search engine from scratch
  • MIPI DSI(三) MIPI DSI 物理层和 D-PHY
  • MMpretrain 中的 LinearClsHead 结构与优化
  • C++标准库(std)详解
  • 1.连接MySQL数据库-demo
  • 蜻蜓I即时通讯水银版系统直播功能模块二次开发文档-详细的直播功能模块文档范例-卓伊凡|麻子
  • 第十八篇 数据清洗:Python智能筛选与统计:从海量Excel数据中秒级挖掘,辅助决策!你的数据分析利器!
  • hash表的模拟--开放定址法
  • C++模版编程:类模版与继承
  • 力扣 hot100 Day43
  • 2025.7.13总结
  • 代码部落 20250713 CSP-S复赛 模拟赛
  • 芯片相关必备
  • [附源码+数据库+毕业论文+答辩PPT+部署教程+配套软件]基于SpringBoot+MyBatis+MySQL+Maven+Vue实现的交流互动管理系统
  • 型模块化协作机器人结构设计cad【1张】三维图+设计说明书