# 如何把EOS8应用打包成一个独立可执行的fatjar包
EOS8默认打包的介质是一个tar.gz,虽然包含了一个可执行的fatjar包,为了方便修改配置文件,应用中的配置等文件并不在fatjar中,具体的目录结构如下:
eos8app eos8app应用目录
├── bin
│ ├── startup.sh eos8app应用启动脚本
│ └── shutdown.sh eos8app应用停止脚本
├── config eos8app配置文件目录(springboot的properties文件)
│ ├── {APP_NAME}/config eos8app的eos的配置文件目录(使用springboot应用名作为目录)
│ │ ├── user-config.xml eos8的用户配置文件(jdbc链接等)
│ ├── └── user-config.xml eos8的用户配置文件(jdbc链接等)
├── db-scripts eos8平台和应用的初始化脚本目录
├── lib 存放数据库驱动包以及三方jar包,eos8平台的补丁目录
├── logs 存放启动后的日志文件
└── {fatjar}.jar eos8App应用打包后的fatjar包
在有一些客户场景中,客户为了统一管理,不能够有复杂目录结构和shell脚本文件,因此需要将eos8的应用打包成一个可以直接执行的fatjar,可以通过下面步骤修改源代码工程实现独立fatjar效果
- 把项目中的boot构件包下的”配置“节点下的所有properties文件拷贝到配置下的resources目录中
- 把项目中的boot构件包下的static目录拷贝到boot构件包的src目录中(这一步是针对精简应用express的,如果是其他类型应用不需要)
- 修改项目的pom文件,增加mysql数据库的依赖关系
... <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency> ...
- 修改项目中的boot构件包下的pom文件,删掉
mysql 配置 - 选中项目,点击右键执行maven build... ,输入package,就可以在boot构件包下的target目录中找到对应的fatjar
- 通过java命令启动这个fatjar
# 单fatjar的启动命令行 java -Dsun.misc.URLClassPath.disableJarChecking=true -server -Djava.net.preferIPv4Stack=true -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -Xms512m -Xmx2048m -Xmn256m -XX:+HeapDumpOnOutOfMemoryError -jar com.primeton.eos.project.boot-1.0.0.jar