1.安装下载inno setup软件,自行搜索下载安装

2.准备安装目录,我的目录如下

7-1
其中tomcat jdk mysql需要去下载免安装版本,发布的项目放入apache-tomcat-8.5.43\webapps下

3.打开安装好的inno setup软件,自行百度创建一个项目

4.mtainit.iss文件内容(主要)

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
#define MyAppName "MTA"
#define MyAppVersion "1.0"
#define MyAppPublisher "Nonstandard Automation Technology Co., Ltd"
#define MyAppURL "http://www.ronstein.com"
#define MyAppExeName "MTA.exe"
 
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{9E4A22DD-5CEA-41A4-B236-5B3A040A9B5B}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=C:\tomcat
SetupIconFile=D:\onekeyinstell\install\favicon.ico
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputBaseFilename=MTAsetup
Compression=lzma
SolidCompression=yes
WizardStyle=modern
 
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
 
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
 
; 安装文件
[Files]
; 安装部署的源文件路径
Source: "D:\onekeyinstell\install\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
; 快捷键
[Icons]
Name: "{commondesktop}\MTA"; Filename: http://localhost:8080/kyo-api ;IconFilename : D:\onekeyinstell\install\favicon.ico
 
; 程序安装成功后执行脚本
[Run]    
Filename: "{app}\install.bat";     
 
;程序御载后执行脚本
 
[UninstallRun]
Filename: "{app}\uninstall.bat";

大部分为自动生成的,其中修改的有
(1).DefaultDirName=C:\tomcat 默认安装位置
(2).SetupIconFile=D:\onekeyinstell\install\favicon.ico 安装图标
(3).OutputBaseFilename=MTAsetup exe的文件名
(4).[Files] [Icons][Run][UninstallRun]部分 代码中有解释

5.install.bat文件内容(主要)重中之重

先贴代码

@echo off
title 软件配置安装中,请不要手动关闭
color 0a
echo 配置安装环境中...
setx /M JAVA_HOME "%~dp0%jdk1.8.0_171"
setx /M MYSQL_HOME "%~dp0%mysql-5.7.22-winx64"
setx /M REDIS_HOME "%~dp0%Redis-x64-3.0.501"
setx /M CATALINA_HOME "%~dp0%apache-tomcat-8.5.43"
setx /M CLASS_PATH ".;%%JAVA_HOME%%\lib;"
setx /M PATH  "%PATH%;%%JAVA_HOME%%\bin;%%MYSQL_HOME%%\bin;%%TOMCAT_HOME%%\bin;%%REDIS_HOME%%"
 
 
echo 环境变量配置成功
 
cd "%~dp0%"
 
echo 开始安装数据库
cd mysql-5.7.22-winx64
bin\mysqld.exe install
bin\mysqld.exe --initialize-insecure --user=mysql
net start MySQL
sc config MySQL start= auto
echo 数据库启动中...
ping -n 3 127.1>nul
echo 初始化数据库...
bin\mysqladmin.exe -u root password 123456
 
echo 创建用户mes
bin\mysql.exe -u root -p123456 < sqlfile\createuser.sql
echo 初始化数据库表
bin\mysql.exe -u mes -p123456 < sqlfile\mes-createsql.sql
bin\mysql.exe -u mes -p123456 < sqlfile\procedure.sql
cd ..
echo 数据库安装完成
 
echo 开始安装缓存服务
cd Redis-x64-3.0.501
redis-server.exe --service-install
echo 缓存服务启动中
redis-server.exe --service-start
ping -n 3 127.1>nul
cd ..
echo 缓存服务安装完成
 
echo 应用服务安装
 
setlocal
 
set "CATALINA_HOME=%~dp0%apache-tomcat-8.5.43"
set "JAVA_HOME=%~dp0%jdk1.8.0_171"
 
call apache-tomcat-8.5.43\bin\service.bat install
 
 
echo 开始启动应用服务
sc config Tomcat8 start= auto
net start Tomcat8
echo 安装完成
ping -n 3 127.1>nul

(1)第一部分是配置环境变量,就是我们平时我的电脑–属性–高级系统设置里面的
(2)然后数据库发布为服务
主要的一句是:bin\mysqladmin.exe -u root password 123456
插入一个点 password 123456代表设置密码 -p123456代表使用这个密码 -p后不要跟空格 切记
mysql安装好后root密码是空的 此句就是设置root密码的 123456随你改
然后是创建我要的用户
其中createuser.sql内容如下,如果使用默认的root用户 应该不需要执行此方法

use mysql
CREATE USER mes IDENTIFIED BY '123456';
grant all privileges on *.* to mes identified by '123456' with grant option;
SET GLOBAL event_scheduler = ON;

创建我要用的用户名密码,然后授权,最后一句是我用到了事件,需要开启一下,
再后面的mes-createsql.sql和procedure.sql都是创建库表和存储过程的,自己写
(3)redis发布服务 这里最简单 一遍过 也不用修改什么
(4)tomcat的配置
一定一定要加

setlocal
set "CATALINA_HOME=%~dp0%apache-tomcat-8.5.43"
set "JAVA_HOME=%~dp0%jdk1.8.0_171"

这三行,最开始的setx /M配置永久环境变量,需要cmd重启才有效,所以此处需要设置一个临时变量,供后面的service.bat调用
我在这个坑里掉了很久,好久才找到这个临时变量的解决方法(对脚本不熟悉)
最后的几句常规启动tomcat不解释
6.uninstall.bat文件内容(我就没打算让他卸载,所以随便写了下,基本没测试过此卸载,仅供参考)
参考如下

@echo off
title 软件正在卸载中,请不要关闭
color 0a
echo 停止并删除应用服务
net stop Tomcat9
sc delete Tomcat9
echo 停止并删除数据库
net stop MySQL
sc delete MySQL
echo 停止并删除缓存服务
Redis-x64-3.0.501\redis-server.exe --service-stop
Redis-x64-3.0.501\redis-server.exe --service-uninstall
echo 删除环境变量
wmic ENVIRONMENT where "name='CLASS_PATH'" delete
wmic ENVIRONMENT where "name='TOMCAT_HOME'" delete
wmic ENVIRONMENT where "name='REDIS_HOME'" delete
wmic ENVIRONMENT where "name='MYSQL_HOME'" delete
echo 删除成功

最后使用inno 生成exe就行了,在Output中,然后就是到新电脑上下一步下一步就行了
在安装中碰到一个缺dll的错误 我是下载安装了vcredist_x64.exe这个文件好的,不知道是不是新系统都会缺,
后面测试如果都缺 考虑要把这个文件也打包进去