Springboot项目在Windows系统一键部署

Inno Setup

InnoSetup 是一个免费的 Windows 安装程序制作软件
下载地址:官网地址

#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 applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
; 单独标识,可以通过innosetup-QSP-5.6.1.exe 工具自动生成
AppId={{0167D65D-549A-4BA3-B88A-4814EC5A1D35}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
; 默认安装路径
DefaultDirName=C:\MyService\
DefaultGroupName={#MyAppName}
; 软件名称
OutputBaseFilename=MyAPPService
; 软件图标
SetupIconFile=C:\Springboot\logo.ico 
; 压缩方式  
Compression=lzma
; yes 可以使文件更小
SolidCompression=yes
; 必需有管理员权限才能安装
PrivilegesRequired=admin
; 安装密码
;Password=itdragon
; 开启加密,可能还需要一个dll文件
;Encryption=yes

; 语言配置 
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

; 安装文件
[Files]
; 安装部署的源文件路径
Source: "C:\Springboot\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

; 快捷键
[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\快捷HTTP地址"; Filename: http://localhost:8080
;Name: "{commondesktop}\Mysql数据初始化脚本"; Filename: "{app}\mysql\init-data.bat" 
Name: "{commondesktop}\安装须知"; Filename: "{app}\安装须知.doc" 

; 程序安装成功后执行脚本
[Run]     
Filename: "{app}\init-jdk.bat"; 
Filename: "{app}\init-vcredist-x86.bat";
Filename: "{app}\mysql-5.7.28-win32\bin\init-mysql.bat";
Filename: "{app}\myService\init-myProject.bat ";
Filename: "{app}\dll-file\dll-move.bat";

点击Inno Setup上的compile按钮开始编译,编译成功后会在一个Output目录夹生成exe文件,这个Output目录一般和iss文件在同一层。

JDK安装部署

@echo off
cls
echo. 
set myjavapath=%cd%\ConfigFiles\Java\jdk1.8.0_131
 
IF EXIST "%myjavapath%"\bin\java.exe ( 
echo.  
echo 发现已经安装java程序,注册环境变量请按任意键 
echo. 
echo. 
goto SETENV 
) 
echo. 
echo 正在安装jdk,请不要执行其他操作 
echo. 
echo 请稍等,这个时间大约需要二、三分钟 
echo. 
start /WAIT %cd%\jdk-8u131-windows-i586.exe /qn INSTALLDIR="%cd%\ConfigFiles\Java\jdk1.8.0_131"
echo 程序安装完毕,正在注册环境变量 
echo. 
goto SETENV
 
:SETENV 
echo
::如果有的话,先删除ClASS_PATH 
wmic ENVIRONMENT where "name='CLASS_PATH'" delete

::创建JAVA_HOME
wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%myjavapath%"

::创建CLASS_PATH
wmic ENVIRONMENT create name="CLASS_PATH",username="<system>",VariableValue=".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;"

::在环境变量path中,剔除掉变量java_home中的字符,回显剩下的字符串
call set xx=%Path%;%%%%JAVA_HOME%%%%\jre\bin;%%%%JAVA_HOME%%%%\bin

::echo %xx%

::将返回显的字符重新赋值到path中
wmic ENVIRONMENT where "name='Path' and username='<system>'" set VariableValue="%xx%"
echo. 
echo JDK环境变量设置成功  
echo. 
echo.
 
:END 
exit 

将init-jdk.bat与jdk的安装包放在同级目录下
在这里插入图片描述

MySQL安装部署

cd /d %~dp0 
cd ..
del /F %cd%\my.ini
echo 删除完成
echo [mysql]>> my.ini
echo default-character-set=utf8>> my.ini
echo [mysqld]>> my.ini
echo port = 3306>> my.ini
echo basedir=%cd%>> my.ini
echo datadir=%cd%\data>> my.ini
echo max_connections=200>> my.ini
echo character-set-server=utf8>> my.ini
echo default-storage-engine=INNODB>> my.ini
echo wait_timeout=2147483>> my.ini
echo interactive_timeout=2147483>> my.ini
echo my.ini生成成功
set inipath=%cd%\my.ini
cd bin
"%cd%\mysqld.exe" -install mysql --defaults-file="%inipath%"
"%cd%\mysqld.exe" --initialize-insecure --user=mysql --console
net start mysql
sc config mysql start=auto 
net stop mysql
net start mysql
echo 安装完毕 
"%cd%\mysqladmin.exe" -u root password root
echo 修改密码完毕 
cd .. 
"%cd%\bin\mysql.exe" -uroot -proot < "%cd%\initsql\myInitSql.sql" 
echo 数据库初始化完成 
exit;

init-mysql.bat放到压缩版的mysql的bin目录下,myInitSql.sql数据库初始化SQL。我直接使用的Navicat导出的SQL。

create database IF NOT EXISTS myDatabase character set utf8;
set global character_set_database=utf8;
set global character_set_server=utf8;
USE myDatabase ;

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `t_handwriting_image`
-- ----------------------------
DROP TABLE IF EXISTS `t_handwriting_image`;
CREATE TABLE `t_handwriting_image` (
  `image_number` int(30) unsigned NOT NULL AUTO_INCREMENT,
  `user_name` varchar(30) DEFAULT NULL,
  `id_number` varchar(20) DEFAULT NULL,
  `image_type` int(10) DEFAULT NULL,
  `image_dimension` varchar(10) DEFAULT NULL,
  `image_digits` int(20) DEFAULT NULL,
  `image_status` int(10) DEFAULT NULL,
  `image` mediumblob,
  `department_id` int(30) DEFAULT NULL,
  `creat_timestamp` datetime DEFAULT NULL,
  PRIMARY KEY (`image_number`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of t_handwriting_image
-- ----------------------------

winsw使用

用途:使用Spring Boot开发的Web项目,打包生成了一个jar包,部署在Windows服务器中,设置为开机启动
下载地址:GitHub
我使用的是winsw-v2.2.0,将Git Hub中下载的WinSW.NET4.exe和sample-minimal.xml文件及springboot项目的jar包放在同一个文件夹中
在这里插入图片描述
将winsw执行程序跟xml改成同样的名字
在这里插入图片描述
编辑myProjectService.xml文件

<configuration>
  
    <!--安装成Windows服务后的服务名-->
    <id>myProjectServiceID</id>
    <!--显示的服务名称-->
    <name>myProjectServiceName</name>
    <!--对服务的描述-->
    <description>此处可填写该服务的描述</description>
    <!--这里写java的路径,如何配置了环境变量直接写"java"就行-->
    <executable>java</executable>
    <!--Xmx256m 代表堆内存最大值为256MB -jar后面的是项目名-->
    <arguments>-Xmx256m -jar myProject.jar</arguments>
    <!--日志模式-->
    <logmode>rotate</logmode>

</configuration>

部署

将init-myProject.bat 放到 myProjectService.exe 同级目录下
在这里插入图片描述

echo -------myProjectService begin--------
"%cd%\myProjectService.xml.exe" install myProjectService
echo -------myProjectService install end------------------
sc config myProjectService start= auto
net start myProjectService
exit

至此大功告成。

在VM虚拟机上部署遇到的坑

安装mysql时缺少.NET Framework组件,init-vcredist-x86.bat将.NET Framework组件静默安装

start /wait %cd%\vcredist_x86.exe /q /norestart
exit

在这里插入图片描述
如果缺少其它的.NET Framework组件,同理。

参考文章:
https://blog.csdn.net/qq_19558705/article/details/80968807
https://www.jianshu.com/p/af90db4b54e3

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值