因为公司需求,要在windows的环境上做一键部署启动java项目,同时还要支持从安装界面动态修改配置文件的IP地址。就像安装软件一样将jdk,tomcat,mysql,influxdb,nginx安装并配置到系统上,顺便还要初始化一下数据。花了一周的时间,这里记录我的踩坑日志。
准备工作
磨刀不误砍柴工,选择好工具可以事半功倍。
一)、Inno Setup,一款为Windows程序提供的免费安装程序,通过它可以将需要的文件压缩打包成exe安装程序,然后像安装程序一样解压到另外一个环境中。官网地址
二)、虚拟机,开两台虚拟机的作用:第一可以避免玩坏自己的电脑,第二可以保证每次测试安装的环境都是干净的系统,减少一些不必要的麻烦。对电脑的性能有点要求。
三)、JDK1.8,MySQL5.7,Tomcat8,Nginx,InfluxDB等,这是需要压缩的文件资源。
四)、Windows Server 2012 R2,你值得拥有,用2008安装MySQL会很不顺。
Inno Setup基础使用
Inno Setup的模版几乎一样,通过官方提供的innosetup-QSP.exe 可以帮助我们快速生成模版。但如果需要自定义界面,那你可就要挠挠头呢。比如我现在的需求是在安装的过程中添加一个有输入框的界面,并且能将输入的值替换指定配置文件中的指定内容,安装成功后在桌面生成快捷键。
对于bat脚本语言很薄弱的我来说这里有两个难点,但依葫芦画瓢还是可以做出来的。
一)、Inno Setup的函数,在[Code]代码块中,Inno Setup提供了很多函数来折磨,以满足我们的需求。具体可以参考在线的文档
二)、需要用bat脚本配置jdk环境变量,安装部署Tomcat,安装部署MySQL。
千篇一律的iss文档:
#define MyAppName "自定义程序名称"
#define MyAppVersion "V1.0"
#define MyAppPublisher "自定义程序出版商"
#define MyAppURL "http://www.xxxx.com/"
; 基本配置
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applicat