java项目部署的方式多种多样,目前springboot框架下都是自带tomcat等服务运行环境的,也可以直接将编译包后的jar包解压后运行起来,今天要介绍的是用wrapper的方式部署项目,这种方式可以直观的配置运行时需要的参数,管理服务更加方便
一、wrapper部署文件说明
wrapper部署方式,可以通过在编辑器里导出wrapper配置方式后的jar文件,解压后里面目录结构如下:
--bin
--conf
--doc
--lib
--logs
bin目录下主要存放三个文件guard.sh、server.sh、wrapper
conf目录下存放项目运行需要的配置文件包括xml、properties等配置文件
lib目录下存放项目运行需要的jar包,里面除了wrapper.jar包其他都是项目编译后生成的jar包
logs目录存放系统运行日志
二、pom.xml配置
为了配置文件和包文件分离,在pom.xml文件中需要配置
org.apache.maven.plugins
maven-jar-plugin
${maven.jar.plugin.version}
package
jar
without-configs
mapping/
*.properties/
logback.xml
这样配置的作用是生成不带配置文件的jar包,同时为了生成的jar包在编译后的target目录下生成,我们需要配置
maven-dependency-plugin
package
copy-dependencies
${project.build.directory}/lib
org.springframework.boot
spring-boot-maven-plugin
true
这样在target/lib目录下就存放了所有的jar包文件,方便部署项目使用
三、项目部署
1、jar包拷贝
项目release文件夹是用来做项目部署之用,项目编译打包后将target->lib下的jar文件拷贝到release的lib文件夹下
2、配置文件拷贝
将项目新增的配置文件直接拷贝到release的conf文件夹下,文件组织形式不要改变(配置文件在项目中是在文件夹下,连同文件夹一起拷贝过来)
3、项目编译后的jar包拷贝
编译后会在target目录下生成casebackend-0.1.0.jar和casebackend-0.1.0-without-configs.jar两个jar包,会方便后面项目部署配置文件修改,我们用不带配置文件的jar包casebackend-0.1.0-without-configs.jar,同理如一
注:第一次编译完成,拷贝了项目需要的文件和配置后。以后只需要将新增的jar包和配置文件拷贝过去即可,不需要每次全部拷贝。可以参考下面脚本一劳永逸,也可以在pom.xml配置编译时自动拷贝对应的文件到对应的位置,自行配置
cp target/lib/* release/lib/ cp target/classes/.properties release/conf/ cp target/casebackend-0.1.0-without-config.jar release/lib/
4、项目启动
通过执行shell脚本运行系统
sh bin/server.sh start/restart/stop
5、查看日志
在通过wrapper.log查看启动日志和运行日志
tail -f wrapper.log
为了方便开发,我们可以将wrapper部署文件放入git中管理,每次只需要上传wrapper中更新的文件重新启动服务即可