1. 程式人生 > >一鍵部署Java Web專案

一鍵部署Java Web專案

1.下載壓縮包版本的JDK、Mysql、Tomcat,本例中採用的是JDK1.8,Mysql5.6,Tomcat8.0版本。

2.解壓後分別將JDK資料夾,Mysql資料夾,Tomcat資料夾放入同一個資料夾(本例該資料夾名為Web)。

3.在Mysql資料夾下建立“temp.txt”,“update.sql”,“install.bat”,以及需要匯入的資料庫指令碼(這裡命名為“InitialData.sql”)。

temp.txt:

set PathTemp=
注意,=號後面不要接回車等任何字元。

update.sql:

set password for 'root'@'localhost'=password('要設定的密碼');
exit;


install.bat:

@echo off
net stop mysql
rem @echo off的作用是關閉回顯功能

rem 找到當前路徑
rem 將temp.txt檔案中內容拷貝到temp.bat檔案中
rem temp.txt檔案中的內容是“set PathTemp=”
rem 特別注意:“=”後面不能加回車
copy temp.txt temp.bat

rem 將路徑新增到temp.bat檔案中
cd>>temp.bat

rem 執行temp.bat檔案中命令
rem temp.bat檔案執行後,路徑已經儲存在PathTemp變數中
call temp.bat

rem 刪除temp.bat檔案
del temp.bat

rem 設定新增到my-default.ini檔案中的資料庫路徑和資料路徑
rem set datadir=datadir=%PathTemp%\data的意思是:
rem 將字串“datadir=”、變數PathTemp對應的字串以及字串“\data”賦值給datadir變數
set basedir=basedir=%PathTemp%
set datadir=datadir=%PathTemp%\data

rem %PathTemp%就是mysql資料夾

rem 設定執行環境變數homedir
set homedir=%PathTemp%\bin

rem 設定變數延遲
rem 注意:使用變數延遲後,相關變數用!!包圍,這樣程式才能正確識別
setlocal enabledelayedexpansion

echo !basedir!>>my-default.ini
echo !datadir!>>my-default.ini

rem 設定刪除mysql服務的命令
set uninstallcmd=.\bin\mysqld.exe remove
rem 呼叫刪除命令
call !uninstallcmd!

rem 設定安裝mysql服務的命令
set installcmd=.\bin\mysqld.exe -install

rem 呼叫安裝命令
call !installcmd!

rem 啟動mysql服務
net start mysql

rem 呼叫update.sql檔案中的sql語句,將mysql的遠端訪問方式開啟,以備遠端訪問伺服器;
rem 同時,將mysql的密碼更改,本批處理命令將mysql密碼更改為root
.\bin\mysql -u root <.\update.sql

echo password reset ok

rem 重啟mysql服務
net stop mysql
net start mysql

.\bin\mysql -h localhost -u root --password=設定的密碼 < %~dp0%InitialData.sql 

4.把部編譯好的專案資料夾放至tomcat\webapps。


5.在tomcat\bin下找到“service.bat”檔案,用以下程式碼覆蓋掉原有程式碼:

rem 現在的=%~dp0就是bin資料夾
set CATALINA_HOME=%~dp0
set SERVICE_NAME=Tomcat8
REM 上面一行,Tomcat8修改成你需要的服務名,這個將是一後使用net start/stop來操作的服務名稱。
set PR_DISPLAYNAME=Apache Tomcat
@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements.  See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License.  You may obtain a copy of the License at
rem
rem     http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.

rem ---------------------------------------------------------------------------
rem NT Service Install/Uninstall script
rem
rem Options
rem install                Install the service using Tomcat8 as service name.
rem                        Service is installed using default settings.
rem remove                 Remove the service from the System.
rem
rem name        (optional) If the second argument is present it is considered
rem                        to be new service name
rem ---------------------------------------------------------------------------

setlocal

set "SELF=%~dp0%service.bat"
rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%cd%"
:gotHome
if exist "%CATALINA_HOME%\bin\tomcat8.exe" goto okHome
rem CD to the upper dir
set "CATALINA_HOME=%cd%\tomcat"
:okHome

if exist "%CATALINA_HOME%\bin\tomcat8.exe" goto okHome
echo %CATALINA_HOME%\bin\tomcat8.exe not found
echo The tomcat8.exe was not found...
echo The CATALINA_HOME environment variable is not defined correctly.
echo This environment variable is needed to run this program
goto end
:okHome
rem Make sure prerequisite environment variables are set
if not "%JAVA_HOME%" == "" goto gotJdkHome
if not "%JRE_HOME%" == "" goto gotJreHome
echo Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
echo Service will try to guess them from the registry.
goto okJavaHome
:gotJreHome
if not exist "%JRE_HOME%\bin\java.exe" goto noJavaHome
if not exist "%JRE_HOME%\bin\javaw.exe" goto noJavaHome
goto okJavaHome
:gotJdkHome
if not exist "%JAVA_HOME%\jre\bin\java.exe" goto noJavaHome
if not exist "%JAVA_HOME%\jre\bin\javaw.exe" goto noJavaHome
if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome
if not "%JRE_HOME%" == "" goto okJavaHome
set "JRE_HOME=%JAVA_HOME%\jre"
goto okJavaHome
:noJavaHome
echo The JAVA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
echo NB: JAVA_HOME should point to a JDK not a JRE
goto end
:okJavaHome
if not "%CATALINA_BASE%" == "" goto gotBase
set "CATALINA_BASE=%CATALINA_HOME%"
:gotBase

set "EXECUTABLE=%CATALINA_HOME%\bin\tomcat8.exe"

rem Set default Service name
set SERVICE_NAME=Tomcat8
set DISPLAYNAME=Apache Tomcat 8.0 %SERVICE_NAME%

if "x%1x" == "xx" goto displayUsage
set SERVICE_CMD=%1
shift
if "x%1x" == "xx" goto checkServiceCmd
:checkUser
if "x%1x" == "x/userx" goto runAsUser
if "x%1x" == "x--userx" goto runAsUser
set SERVICE_NAME=%1
set DISPLAYNAME=Apache Tomcat 8.0 %1
shift
if "x%1x" == "xx" goto checkServiceCmd
goto checkUser
:runAsUser
shift
if "x%1x" == "xx" goto displayUsage
set SERVICE_USER=%1
shift
runas /env /savecred /user:%SERVICE_USER% "%COMSPEC% /K \"%SELF%\" %SERVICE_CMD% %SERVICE_NAME%"
goto end
:checkServiceCmd
if /i %SERVICE_CMD% == install goto doInstall
if /i %SERVICE_CMD% == remove goto doRemove
if /i %SERVICE_CMD% == uninstall goto doRemove
echo Unknown parameter "%SERVICE_CMD%"
:displayUsage
echo.
echo Usage: service.bat install/remove [service_name] [/user username]
goto end

:doRemove
rem Remove the service
echo Removing the service '%SERVICE_NAME%' ...
echo Using CATALINA_BASE:    "%CATALINA_BASE%"

"%EXECUTABLE%" //DS//%SERVICE_NAME% ^
    --LogPath "%CATALINA_BASE%\logs"
if not errorlevel 1 goto removed
echo Failed removing '%SERVICE_NAME%' service
goto end
:removed
echo The service '%SERVICE_NAME%' has been removed
goto end

:doInstall
rem Install the service
echo Installing the service '%SERVICE_NAME%' ...
echo Using CATALINA_HOME:    "%CATALINA_HOME%"
echo Using CATALINA_BASE:    "%CATALINA_BASE%"
echo Using JAVA_HOME:        "%JAVA_HOME%"
echo Using JRE_HOME:         "%JRE_HOME%"

rem Try to use the server jvm
set "JVM=%JRE_HOME%\bin\server\jvm.dll"
if exist "%JVM%" goto foundJvm
rem Try to use the client jvm
set "JVM=%JRE_HOME%\bin\client\jvm.dll"
if exist "%JVM%" goto foundJvm
echo Warning: Neither 'server' nor 'client' jvm.dll was found at JRE_HOME.
set JVM=auto
:foundJvm
echo Using JVM:              "%JVM%"

set "CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar"
if not "%CATALINA_HOME%" == "%CATALINA_BASE%" set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\tomcat-juli.jar"

"%EXECUTABLE%" //IS//%SERVICE_NAME% ^
    --Description "Apache Tomcat 8.0.44 Server - http://tomcat.apache.org/" ^
    --DisplayName "%DISPLAYNAME%" ^
    --Install "%EXECUTABLE%" ^
    --LogPath "%CATALINA_BASE%\logs" ^
    --StdOutput auto ^
    --StdError auto ^
    --Classpath "%CLASSPATH%" ^
    --Jvm "%JVM%" ^
    --StartMode jvm ^
    --StopMode jvm ^
    --StartPath "%CATALINA_HOME%" ^
    --StopPath "%CATALINA_HOME%" ^
    --StartClass org.apache.catalina.startup.Bootstrap ^
    --StopClass org.apache.catalina.startup.Bootstrap ^
    --StartParams start ^
    --StopParams stop ^
    --JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-Djava.endorsed.dirs=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" ^
    --JvmMs 128 ^
    --JvmMx 256
if not errorlevel 1 goto installed
echo Failed installing '%SERVICE_NAME%' service
goto end
:installed
echo The service '%SERVICE_NAME%' has been installed.

:end
cd "%CURRENT_DIR%"

6.回到“Web”資料夾下,建立“安裝點這裡.bat”。

安裝點這裡.bat:

@echo off
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment rem LPY
echo.
echo ************************************************************
echo *                                                          *
echo *                        1.安裝JDK                         *
echo *                                                          *
echo ************************************************************
echo.
echo === 新建立環境變數 JAVA_HOME=%~dp0jdk
setx "JAVA_HOME"  /m %~dp0jdkecho.
echo. 
echo === 新建立環境變數 CLASS_PATH=%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;.
setx "CLASS_PATH" ".;%%JAVA_HOME%%\lib\tools.jar;%%JAVA_HOME%%\lib\dt.jar;" -m echo.
echo. 
echo === 新追加環境變數(追加到最後面) PATH=;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;
set append=;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin;
set newPath=%Path%%append%
setx "Path"  "%newPath%" -m
rem 清理之前的MySQL和 tomcat8,避免安裝失敗
sc delete mysql
sc delete tomcat8
echo.
echo.
echo ************************************************************
echo *                                                          *
echo *                   2.安裝mysql資料庫                      *
echo *                                                          *
echo ************************************************************
echo.
cd mysql\
call install.bat
cd ..
echo.
echo ************************************************************
echo *                                                          *
echo *                      3.安裝tomcat                        *
echo *                                                          *
echo ************************************************************
echo.
call %~dp0tomcat\bin\service.bat remove
call %~dp0tomcat\bin\service.bat install
sc config "tomcat8" start= AUTO
net start tomcat8
echo.
echo ************************************************************
echo *                                                          *
echo *                        安裝完成                          *
echo *                                                          *
echo ************************************************************
echo.
echo === 請按任意鍵退出! 
pause>nul

7.執行“安裝點這裡.bat”,出現的mysql警告可以忽略,完成部署環節。

8.建立一個快捷方式,物件位置請輸入Web專案的訪問地址。

9.點選該快捷方式,即可正常瀏覽該Web專案的頁面。