使用Inno Setup 打包jdk、mysql、tomcat、webapp等为一个exe安装包(转)
之前一直都没涉及到打包安装方面的东西,都是另一个同事负责的,使用的工具(installshield)也比较高大上一点,可是后来他离职以后接受的同事也只能是在这个基础上做个简单的配置,然后打包,可是现在做的项目和原来的完全不一样以后就不能使用之前的了,只能是自己硬着头皮来弄个比较简单快捷的了。
切入正题,如标题所述使用inno setup来打包一个java web 相关的内容为一个exe,.net web类似,这个工具可以在网上直接找到下载,有汉化版的,并且里面也有帮助手册可以参考。把里面的一些敏感信息已经做了替代,这些都是可以根据你自己情况来修改的。下面直接上干货。
- 打包和发布的内容
jdk(1.6/1.7/1.8)、mysql(5.5~)、tomcat(6.0/7.0/8.0)、ftp服务器、webapp、.Net服务、C++服务(请诸位无视项目中技术的复杂行,都是历史原因)
打包脚本和bat脚本中涉及到,文件拷贝、ini配置文件修改、xml配置文件修改、服务安装停止启动、.net服务安装、环境变量配置、数据库初始化等,唯独缺少注册表和防火墙配置(%>_<%) - 打包脚本
1 ; 脚本由 Inno Setup 脚本向导 生成! 2 ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! 3 4 #define MyAppName "abc" 5 #define MyAppVersion "1.0" 6 #define MyAppPublisher "aaa" 7 #define MyAppURL "http://www.abc.com/" 8 9 [Setup] 10 ; 注: AppId的值为单独标识该应用程序。 11 ; 不要为其他安装程序使用相同的AppId值。 12 ; (生成新的GUID,点击 工具|在IDE中生成GUID。) 13 AppId={{9E044575-9CD9-4751-B0BE-F6758BA94548} 14 AppName={#MyAppName} 15 AppVersion={#MyAppVersion} 16 ;AppVerName={#MyAppName} {#MyAppVersion} 17 AppPublisher={#MyAppPublisher} 18 AppPublisherURL={#MyAppURL} 19 AppSupportURL={#MyAppURL} 20 AppUpdatesURL={#MyAppURL} 21 DefaultDirName={pf}\{#MyAppName} 22 DefaultGroupName=XX管理软件(abc) 23 AllowNoIcons=yes 24 OutputBaseFilename=setup 25 Compression=lzma 26 SolidCompression=yes 27 [Files] 28 ;拷贝tomcat 29 Source:"Source\apache-tomcat-6.0.41\*";DestDir:"{app}\tomcat6.0";Flags:igNoreversion recursesubdirs createallsubdirs 30 ;拷贝jdk 31 Source:"Source\jdk1.6.0_43\*";DestDir:"{app}\jdk1.6";Flags:igNoreversion recursesubdirs createallsubdirs 32 ;拷贝mysql 33 Source:"Source\MySql5.5\*";DestDir:"{app}\MySql5.5";Flags:igNoreversion recursesubdirs createallsubdirs 34 ;拷贝源代码 35 Source:"Source\abc\*";DestDir:"{app}\tomcat6.0\webapps\ROOT";Flags:igNoreversion recursesubdirs createallsubdirs 36 ;拷贝sdk 37 Source:"Source\Sdk\*";DestDir:"{app}\Sdk";Flags:igNoreversion recursesubdirs createallsubdirs 38 ;拷贝服务器 39 Source:"Source\Server\*";DestDir:"{app}\Server";Flags:igNoreversion recursesubdirs createallsubdirs 40 ;拷贝ftp 41 Source:"Source\FtpServer\*";DestDir:"{app}\FtpServer";Flags:igNoreversion recursesubdirs createallsubdirs 42 ;拷贝bat 43 Source:"Source\*";DestDir:"{app}\"; 44 ;拷贝桌面快捷方式 45 Source:"Source\xx系统.url";DestDir:"{userdesktop}\xx系统"; 46 [Languages] 47 Name: "chinesesimp"; MessagesFile: "compiler:Default.isl" 48 [Icons] 49 Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" 50 Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" 51 [INI] 52 ;修改数据库配置文件 53 Filename:"{app}\MySql5.5\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\MySql5.5" 54 Filename:"{app}\MySql5.5\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\MySql5.5\data" 55 Filename:"{app}\MySql5.5\my.ini";Section:"mysqld";Key:"port"; String:"3308" 56 Filename:"{app}\MySql5.5\my.ini";Section:"client";Key:"port"; String:"3308" 57 ;修改服务器配置文件 58 Filename:"{app}\Server\init.ini";Section:"RegAddr";Key:"port"; String:"5556" 59 Filename:"{userdesktop}\xx系统.url";Section:"InternetShortcut";Key:"URL"; String:"http://127.0.0.1:7070/" 60 [Run] 61 ;修改tomcat配置文件 62 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\tomcat6.0\conf\server.xml