|
时 间 记 忆 |
<< < 2018 - 2 > >>
日 |
一 |
二 |
三 |
四 |
五 |
六 |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
|
|
|
|
|
|
|
|
|
使用Inno Setup 打包jdk、mysql、tomcat、webapp等为一个exe安装包 |
[ 2017-2-27 16:53:00 | By: 我家超超会发光 ] |
- 打包和发布的内容
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
5
6
7
8
9 [Setup]
10 ; 注: AppId的值为单独标识该应用程序。
11 ; 不要为其他安装程序使用相同的AppId值。
12 ; (生成新的GUID,点击 工具|在IDE中生成GUID。)
13 AppId={{9E044575-9CD9-4751-B0BE-F6758BA94548}
14 AppName={
15 AppVersion={
16 ;AppVerName={
17 AppPublisher={
18 AppPublisherURL={
19 AppSupportURL={
20 AppUpdatesURL={
21 DefaultDirName={pf}\{
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"; Messages "compiler:Default.isl"
48 [Icons]
49 Name: "{group}\{cm:ProgramOnTheWeb,{
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'),'/Server/Service/Connector','port','7070')
63 ;修改web数据库连接配置文件
64 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\tomcat6.0\webapps\ROOT\-INF\Context.xml'),'/Context/Resource','password','123456')
65 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\tomcat6.0\webapps\ROOT\-INF\Context.xml'),'/Context/Resource','url','jdbc:mysql://127.0.0.1:3308/abc?characterEncoding=UTF-8')
66 ;修改FTP配置文件
67 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\FtpServer\FileZilla Server.xml'),'/FileZillaServer/Users/User','Name','admin')
68 Filename:"{app}\loading.bat";AfterInstall:ConfigXml2(ExpandConstant('{app}\FtpServer\FileZilla Server.xml'),'/FileZillaServer/Users/User/Option[0]','e10adc3949ba59abbe56e057f20f883e')
69 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\FtpServer\FileZilla Server.xml'),'/FileZillaServer/Users/User/Permissions/Permission','Dir',ExpandConstant('{app}\tomcat6.0\webapps\ROOT\SystemFile'))
70 ;修改服务配置文件
71 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\Sdk\abc.config'),'/configuration/appSettings/add[1]','value','127.0.0.1')
72 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\Sdk\abc.config'),'/configuration/appSettings/add[2]','value','5556')
73 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\Sdk\abc.config'),'/configuration/appSettings/add[3]','value','127.0.0.1')
74 Filename:"{app}\loading.bat";AfterInstall:ConfigXml(ExpandConstant('{app}\Sdk\abc.config'),'/configuration/appSettings/add[4]','value','7070')
75 Filename:"{app}\install.bat";De***ion:"正在启动或配置相关程序";
76 [UninstallRun]
77 Filename:"{app}\uninstall.bat";
78 [UninstallDelete]
79 Type:filesandordirs;Name:"{app}\Server"
80 Type:filesandordirs;Name:"{app}\MySql5.5"
81 Type:filesandordirs;Name:"{app}\Sdk"
82 Type:filesandordirs;Name:"{app}\tomcat6.0"
83 Type:files;Name:"{app}\InstallUtil.InstallLog"
84 [Code]
85 procedure ConfigXml2(xmlPath:String;xPath:String;innerText:String);
86 var
87 XMLDocument,XMLRoot,XMLNode:Variant;
88 begin
89 try
90 XMLDocument := CreateOleObject('MSXML2.DOMDocument');
91 XMLasync := False;
92 XMLresolveExternals := False;
93 XMLload(xmlPath);
94 XMLRoot := XML***Element;
95
96 XMLNode:=XMLRoot.SelectSingleNode(xPath);
97 XMLNode.Text:=innerText;
98 XMLSave(xmlPath);
99 except
100 MsgBox('xml error', mbInformation, mb_Ok);
101 end;
102 end;
103 procedure ConfigXml(xmlPath:String;xPath:String;attrName:String;attrValue:String);
104 var
105 XMLDocument,XMLRoot,XMLNode:Variant;
106 begin
107 try
108 XMLDocument := CreateOleObject('MSXML2.DOMDocument');
109 XMLasync := False;
110 XMLresolveExternals := False;
111 XMLload(xmlPath);
112 XMLRoot := XML***Element;
113
114 XMLNode:=XMLRoot.SelectSingleNode(xPath);
115 XMLNode.Attributes.GetNamedItem(attrName).Value:=attrValue;
116 XMLSave(xmlPath);
117 except
118 MsgBox('xml error', mbInformation, mb_Ok);
119 end;
120 end;
- 打包脚本调用的bat安装脚本
@echo off
title 运维系统正在安装中,请不要手动关闭
color 0a
echo jdk 环境变量
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /t REG_EXPAND_SZ /d "%cd%\jdk1.6" /f
echo tomcat 环境变量
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v CATALINA_HOME /t REG_EXPAND_SZ /d "%cd%\tomcat6.0" /f
echo 系统环境变量
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "PATH" /d "%PATH%;%cd%\jdk1.6\bin;%cd%\tomcat6.0\bin;" /f
echo 启动mysql并更新密码
"%cd%\MySql5.5\bin\mysqld.exe" --install "abcMysql" --defaults-file="%cd%\MySql5.5\my.ini"
net start abcMysql
sc config abcMysql start=auto
ping -n 30 127.1>nul
"%cd%\MySql5.5\bin\mysql.exe" --defaults-file="%cd%\MySql5.5\my.ini" -u root -e "UPDATE mysql.user SET Password=old_password('123456') WHERE User='root' or User='';"
"%cd%\MySql5.5\bin\mysql.exe" --defaults-file="%cd%\MySql5.5\my.ini" -u root -e "FLUSH PRIVILEGES;"
echo 初始化mysql数据库
"%cd%\MySql5.5\bin\mysql.exe" -uroot -p123456 < "%cd%\tomcat6.0\webapps\ROOT\abc.sql"
net stop abcMysql
net start abcMysql
echo 安装ftp
"%cd%\FtpServer\FileZilla server.exe" /install auto
"%cd%\FtpServer\FileZilla server.exe" /start
echo 安装服务器
sc create abcMessageService binpath= "%cd%\Server\Server.exe" displayname= "abcMessageService" start= auto
Net Start abcMessageService
echo 启动tomcat
set JAVA_HOME=%cd%\jdk1.6
set CATALINA_HOME=%cd%\tomcat6.0
set CATALINA_BASE=%cd%\tomcat6.0
cd .\tomcat6.0\bin
call service.bat install
sc config abcTomcat6 start=auto
net start abcTomcat6
cd ..\..\
echo 安装服务
%SystemRoot%\Microsoft.NET\work\v2.0.50727\installutil.exe "%cd%\Sdk\abc.exe"
Net Start abcService
sc config abcService start=auto
exit
- 打包脚本调用的bat卸载脚本
@echo off
title abc系统正在卸载中,请不要手动关闭
color 0a
echo 删除环境变量
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v JAVA_HOME /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v CATALINA_HOME /f
echo 停止并删除tomcat
net stop abcTomcat6
cd .\tomcat6.0\bin
call service.bat remove
cd ..\..\
echo 停止并删除mysql
net stop abcMysql
sc delete abcMysql
echo 停止并卸载FTP
"%cd%\FtpServer\FileZilla server.exe" /stop
"%cd%\FtpServer\FileZilla server.exe" /uninstall
echo 卸载注册服务器
Net Stop abcMessageService
sc delete abcMessageService
echo 卸载运维服务
Net Stop abcService
%SystemRoot%\Microsoft.NET\work\v2.0.50727\installutil.exe -u "%cd%\Sdk\abc.exe"
sc delete abcService
exit
- 打包脚本调用的bat等待脚本
@echo off
echo pause;
- 其他相关
1.建议把要打包的内容都放在同一个目录下面 2.自己新建一个ie网站快捷方式,用记事本打开以后修改成自己app的连接地址 3.这个ftp是使用的FileZilla,配置文件中的密码是标准md5加密 4.代码里面的东西可以根据个人项目的实际情况做适当的调整。 |
|
|
|
|