成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

windows一鍵部署java項(xiàng)目

xbynet / 1745人閱讀

摘要:一的函數(shù),在代碼塊中,可以自定義很多功能來(lái)實(shí)現(xiàn)自定義的開發(fā),具體可以參考在線的文檔二需要用腳本配置環(huán)境變量,安裝部署,安裝部署。

windows一鍵部署java項(xiàng)目

因?yàn)楣拘枨螅趙indows的環(huán)境上做一鍵部署啟動(dòng)java項(xiàng)目,同時(shí)還要支持從安裝界面動(dòng)態(tài)修改配置文件的IP地址。就像安裝軟件一樣將jdk,tomcat,mysql,influxdb,nginx安裝并配置到系統(tǒng)上,順便還要初始化一下數(shù)據(jù)。花了一周的時(shí)間,這里記錄我的踩坑日志。

準(zhǔn)備工作

磨刀不誤砍柴工,選擇好工具可以事半功倍。
一)、Inno Setup,一款為Windows程序提供的免費(fèi)安裝程序,通過(guò)它可以將需要的文件壓縮打包成exe安裝程序,然后像安裝程序一樣解壓到另外一個(gè)環(huán)境中。官網(wǎng)地址
二)、虛擬機(jī),兩個(gè)作用:第一可以避免玩壞自己的電腦,第二可以保證每次測(cè)試安裝的環(huán)境都是干凈的系統(tǒng),減少一些不必要的麻煩。
三)、JDK1.8,MySQL5.7,Tomcat8,Nginx,InfluxDB等,這是需要壓縮的文件資源。
四)、Windows Server 2012 R2,你值得擁有,用2008安裝MySQL會(huì)很不順。

Inno Setup基礎(chǔ)使用

Inno Setup的模版幾乎一樣,如果需要自定義界面,可以在[Code]中添加代碼。比如我需要在安裝的過(guò)程中添加一個(gè)有輸入框的自定義界面,將輸入的值替換配置文件中的指定內(nèi)容,安裝成功后在桌面生成快捷鍵。
對(duì)于bat腳本語(yǔ)言很薄弱的我來(lái)說(shuō)這里有兩個(gè)難點(diǎn),但依葫蘆畫瓢還是可以做出來(lái)的。
一)、Inno Setup的函數(shù),在[Code]代碼塊中,可以自定義很多功能來(lái)實(shí)現(xiàn)自定義的開發(fā),具體可以參考在線的文檔
二)、需要用bat腳本配置jdk環(huán)境變量,安裝部署Tomcat,安裝部署MySQL。

#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.)
; 多帶帶標(biāo)識(shí),可以通過(guò)innosetup-QSP-5.6.1.exe 工具自動(dòng)生成
AppId={{0167D65D-549A-4BA3-B88A-4814EC5A1D35}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
; 默認(rèn)安裝路徑
DefaultDirName=C:Program FilesITDragon
DefaultGroupName={#MyAppName}
; 軟件名稱
OutputBaseFilename=ITDragon
; 軟件圖標(biāo)
SetupIconFile=C:UsersLongDesktopokITDragonitdragon.ico 
; 壓縮方式  
Compression=lzma
; yes 可以使文件更小
SolidCompression=yes
; 必需有管理員權(quán)限才能安裝
PrivilegesRequired=admin
; 安裝密碼
;Password=itdragon
; 開啟加密,可能還需要一個(gè)dll文件
;Encryption=yes

; 語(yǔ)言配置 
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

; 安裝文件
[Files]
; 安裝部署的源文件路徑
Source: "C:UsersLongDesktopITDragon*"; 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
Name: "{commondesktop}Mysql數(shù)據(jù)初始化腳本"; Filename: "{app}mysqlinit-data.bat" 
Name: "{commondesktop}安裝須知"; Filename: "{app}安裝須知.doc" 

; 程序安裝成功后執(zhí)行腳本
[Run]     
Filename: "{app}	omcatinit-jdk.bat"; 
Filename: "{app}	omcatininit-tomcat.bat";
Filename: "{app}mysqlininit-mysql.bat";

; 在安裝的時(shí)候輸入IP地址,動(dòng)態(tài)將localhost修改為輸入值
[Code]
var
myPage:TwizardPage;//自定義窗口
ed1:TEdit;//自定義輸入框
Lbl1: TNewStaticText;//自定義標(biāo)題

//初始化引導(dǎo)窗口
procedure InitializeWizard();
begin
myPage:=CreateCustomPage(wpWelcome, "配置服務(wù)IP地址", "請(qǐng)輸入正確的IP地址,已確保服務(wù)的正常使用");
Lbl1 := TNewStaticText.Create(myPage);
Lbl1.Left := ScaleX(5);
Lbl1.Top := ScaleY(5);
Lbl1.Width := ScaleX(250);
Lbl1.Height := ScaleY(50);
Lbl1.Caption := "IP地址輸入框標(biāo)題";
Lbl1.Parent := myPage.Surface;
ed1:=TEdit.Create(myPage);
ed1.Width:=ScaleX(410);
ed1.Top := ScaleY(25);
ed1.Text :="127.0.0.1";
ed1.Parent:=myPage.Surface;
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
    fileName:String;
    svArray: TArrayOfString;
    nLines,i:Integer;
begin
  //復(fù)制文件后執(zhí)行
  if CurStep = ssPostinstall then
  begin
  fileName := ExpandConstant("{app}
ginxhtmlmain.bundle.js");
  LoadStringsFromFile(fileName, svArray);//讀取文件
  nLines := GetArrayLength(svArray);
  for i := 0 to nLines - 1 do
    if (0 < Pos("localhost", svArray[i])) then//查找目標(biāo)
    StringChange(svArray[i], "localhost", ed1.Text);
    SaveStringsToUTF8File(fileName, svArray, false);
  end;
end;

注意:
一)、如果你不需要自定義函數(shù),[Code]代碼塊都可以刪掉
二)、點(diǎn)擊Inno Setup上的compile按鈕開始編譯,編譯成功后會(huì)在一個(gè)Output目錄夾生成exe文件,這個(gè)Output目錄一般和iss文件在同一層。

配置JDK環(huán)境變量

在做這個(gè)需求的時(shí)候,看了幾篇文章,發(fā)現(xiàn)他們都把jdk放在Tomcat目錄中,第一次做的時(shí)候也傻乎乎的放在Tomcat目錄中,其實(shí)沒必要。而且目前主流的springboot項(xiàng)目都是內(nèi)嵌tomcat。新建一個(gè)bat腳本用來(lái)運(yùn)行java程序java -jar xxx.jar 安裝成功后在桌面生成一個(gè)快捷鍵,讓用戶雙擊啟動(dòng)服務(wù)。如果你有跟合理的方法,可以告訴我?。?!
init-jdk.bat,內(nèi)容來(lái)源網(wǎng)絡(luò),修改時(shí)需要目錄層級(jí)關(guān)系:

@echo off 
echo
cd ..
echo  "%~dp0"
echo "%cd%"
set jdkpath=%cd%	omcatinjavajdk
echo %jdkpath%
setx JAVA_HOME  "%jdkpath%"  -m
setx CLASSPATH  ".;%%JAVA_HOME%%lib	ools.jar;%%JAVA_HOME%%libdt.jar" -m
echo %Path%
echo %Path%|find /i "%java_home%" && set IsNull=true || set IsNull=false
echo %IsNull%
if not %IsNull%==true (
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment" /v Path /t REG_SZ /d "%Path%;%%JAVA_HOME%%in;%%JAVA_HOME%%jrein" /f
setx Path "%%JAVA_HOME%%in;%Path%"
)
exit
Tomcat安裝部署

需要將init-tomcat.bat文件放在tomcat/bin目錄下,有博客說(shuō)要修改service.bat文件,我沒有修改依然可以正常啟動(dòng)。在看別人的博客的時(shí)候,遇到不明白的地方可以先試著跳過(guò)去。我就傻乎乎的下了一個(gè)tomcat6,對(duì)比兩者有什么區(qū)別......

echo -------tomcat begin--------
call "%~dp0%service.bat" install tomcat8
echo -------tomcat install end------------------
sc config tomcat8 start= auto
net start tomcat8
exit
MySQL安裝部署

MySQL安裝需要注意兩點(diǎn):第一設(shè)置數(shù)據(jù)庫(kù)初始密碼,第二設(shè)置數(shù)據(jù)庫(kù)編碼格式,
一)、初始化數(shù)據(jù)庫(kù)的時(shí)候不要生成密碼,方便后期修改,命令mysqld.exe --initialize-insecure --user=mysql --console
二)、數(shù)據(jù)庫(kù)的編碼格式要統(tǒng)一為utf8,網(wǎng)上很多方法都是在my.ini文件中配置編碼格式,可MySQL5.7沒有該文件,沒有就創(chuàng)建一個(gè)。MySQL5.6如果手動(dòng)創(chuàng)建my.ini文件可能在啟動(dòng)服務(wù)時(shí)有問(wèn)題。
init-mysql.bat,內(nèi)容來(lái)源網(wǎng)絡(luò),稍作修改。

cd /d %~dp0 
cd ..
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%inmysql.exe" -uroot -proot < "%cd%sqlfileinitMysql.sql" 
echo 數(shù)據(jù)庫(kù)初始化完成 
pause;

initMysql.sql

create database IF NOT EXISTS itdragon_data character set utf8;
set global character_set_database=utf8;
set global character_set_server=utf8;
遇到的坑

用了Inno Setup工具,一鍵部署配置web項(xiàng)目變的很簡(jiǎn)單,只需要將部署的資源壓縮成exe文件,然后點(diǎn)擊exe文件待安裝成功后執(zhí)行自動(dòng)運(yùn)行bat文件初始化配置即可。可我依然話了很長(zhǎng)的時(shí)間。原因有幾點(diǎn):
一)、開始安裝的環(huán)境是Windows Server 2008,安裝MySQL5.7失敗,原因是不支持MySQL5.7提供的高級(jí)讀寫鎖。后來(lái)?yè)Q成了MySQL5.6安裝成功
二)、MySQL5.6啟動(dòng)服務(wù)失敗1067,網(wǎng)上也有很多解決方法,沒有一個(gè)成功。無(wú)奈換了WIndows Server 2012 r2,結(jié)果一次成功。
三)、對(duì)Inno Setup函數(shù)使用不熟,資源文件太大,每次編譯調(diào)試要等待半小時(shí)。

文章到這里就結(jié)束了,InfluxDB和Nginx就更簡(jiǎn)單了,一樣的邏輯。希望大家把時(shí)間用到正確的地方。如果覺得不錯(cuò)可以點(diǎn)個(gè)"推薦"

參考文章:
https://blog.csdn.net/liuhaom...

https://blog.csdn.net/dj0721/...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71530.html

相關(guān)文章

  • 阿里云學(xué)生服務(wù)器操作攻略(超詳細(xì)全套完整圖文教程!菜鳥必看?。?/b>

    摘要:第一步如何以最低價(jià)格快速買到阿里云服務(wù)器如果我是學(xué)生,我如何通過(guò)買到價(jià)值的服務(wù)答用購(gòu)買云服務(wù)器是阿里云學(xué)生專屬活動(dòng)。除阿里云外,大多數(shù)云服務(wù)器公司例如西部等同配置云服務(wù)器的價(jià)格都在左右。例如云服務(wù)器地址等。第一步:如何以最低價(jià)格快速買到阿里云服務(wù)器?1.1 如果我是學(xué)生,我如何通過(guò)¥9.9買到價(jià)值¥117的服務(wù)?答:用¥9.9購(gòu)買云服務(wù)器ECS是阿里云學(xué)生專屬活動(dòng)。首先,你需要在阿里云官網(wǎng)注...

    FuisonDesign 評(píng)論0 收藏0
  • 阿里云ECS建網(wǎng)站(建站)超詳細(xì)全套完整圖文教程! [

    摘要:首先,你需要在阿里云官網(wǎng)注冊(cè)賬號(hào)。然后在阿里云官網(wǎng)首頁(yè)點(diǎn)擊校園扶持,經(jīng)學(xué)生認(rèn)證后便可購(gòu)買每月的特價(jià)云服務(wù)器。圖幕布拍照如果對(duì)備案還有疑問(wèn),請(qǐng)參考阿里云官方文檔首次備案圖文引導(dǎo)。具體操作方式請(qǐng)看阿里云官方介紹鏡像部署或一鍵安裝包部署。第一步:如何以最低價(jià)格快速買到阿里云服務(wù)器?1.1 如果我是學(xué)生,我如何通過(guò)¥9.9買到價(jià)值¥117的服務(wù)? 答:用¥9.9購(gòu)買云服務(wù)器ECS是阿里云學(xué)生專屬活動(dòng)...

    andycall 評(píng)論0 收藏0
  • 阿里云ECS建站超詳細(xì)全套完整圖文教程

    摘要:首先,你需要在阿里云官網(wǎng)注冊(cè)賬號(hào)。然后在阿里云官網(wǎng)首頁(yè)點(diǎn)擊校園扶持,經(jīng)學(xué)生認(rèn)證后便可購(gòu)買每月的特價(jià)云服務(wù)器。圖幕布拍照如果對(duì)備案還有疑問(wèn),請(qǐng)參考阿里云官方文檔首次備案圖文引導(dǎo)。具體操作方式請(qǐng)看阿里云官方介紹鏡像部署或一鍵安裝包部署。第一步:如何以最低價(jià)格快速買到阿里云服務(wù)器? 1.1 如果我是學(xué)生,我如何通過(guò)¥9.9買到價(jià)值¥117的服務(wù)? 答:用¥9.9購(gòu)買云服務(wù)器ECS是阿里云學(xué)生專屬活...

    Yangyang 評(píng)論0 收藏0
  • 阿里云ECS建網(wǎng)站(建站)超詳細(xì)全套完整圖文教程!菜鳥必看!

    摘要:首先,你需要在阿里云官網(wǎng)注冊(cè)賬號(hào)。然后在阿里云官網(wǎng)首頁(yè)點(diǎn)擊校園扶持,經(jīng)學(xué)生認(rèn)證后便可購(gòu)買每月的特價(jià)云服務(wù)器。圖幕布拍照如果對(duì)備案還有疑問(wèn),請(qǐng)參考阿里云官方文檔首次備案圖文引導(dǎo)。具體操作方式請(qǐng)看阿里云官方介紹鏡像部署或一鍵安裝包部署。第一步:如何以最低價(jià)格快速買到阿里云服務(wù)器?1.1 如果我是學(xué)生,我如何通過(guò)¥9.9買到價(jià)值¥117的服務(wù)? 答:用¥9.9購(gòu)買云服務(wù)器ECS是阿里云學(xué)生專屬活動(dòng)...

    Baoyuan 評(píng)論0 收藏0
  • 使用 Linux 子系統(tǒng)部署 Node、Gradle 項(xiàng)目的構(gòu)建工具

    摘要:最近的一個(gè)項(xiàng)目,由三個(gè)工程以及一個(gè)工程組成。為了使用下的各種工具提升效率,本文探討子系統(tǒng)的使用及在該系統(tǒng)下,等工具的配置。參考鏈接內(nèi)置子系統(tǒng)初體驗(yàn)設(shè)置環(huán)境變量并立即生效設(shè)置環(huán)境變量的方法和區(qū)別官網(wǎng)工具的使用簡(jiǎn)明安裝教程 最近的一個(gè)項(xiàng)目,由三個(gè) Gradle「Java」工程以及一個(gè) Node「Vue.js」工程組成。為了使用 Linux 下的各種工具提升效率,本文探討 Linux 子系統(tǒng)...

    frank_fun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<