2016-04-05 57 views
0

忍受着我,因爲這是我使用Tomcat的第一個java servlet。我在Windows上的Eclipse中編寫它,並且需要編寫一個構建腳本併爲其運行腳本。編寫shell腳本來構建和部署WAR文件

從我所知道的情況來看,我發送此消息的用戶需要安裝Tomcat才能運行此WAR。

如果是這樣的話,我的構建腳本需要 1.在其筆記本電腦 2.安裝Tomcat部署我的戰爭給它

和我的運行腳本只需要運行我的程序?

+0

你打算支持已經安裝了tomcat實例的個人/組織嗎?另一種方法是不要試圖安裝tomcat *本身,而是創建一個.zip/.tar.gz,其中包含tomcat,並且您的應用程序已經部署在其中。然後簡單地解壓縮.zip/.tar.gz並啓動tomcat。這種方法被Atlassian用於他們的tomcat項目。 – KevinO

+0

試過春季啓動?轉到start.spring.io並選擇您需要的技術。以maven格式創建並下載項目(pom.xml項目文件)使用servlet和嵌入式tomcat構建和分發可運行jar文件。你的jar甚至可以變成一個「真正的」可執行文件(事實上,你的jar被嵌入到一個shell腳本中,這樣你就可以在不使用「java -jar ...」的情況下從命令行啓動它),並且你可以很容易地安裝它作爲一個服務/守護進程。這是迄今爲止最簡單的方法。 –

+0

@jonmartinsolaas不錯!我會研究這個。如果用戶沒有安裝tomcat,這會工作嗎?如果tomcat嵌入到我的jar中,它會運行嗎?還是用戶仍然需要在運行我的程序之前在他們的機器上安裝tomcat? – Kevin

回答

-1

,我認爲這可以幫助你: https://gist.github.com/geowa4/1428257

#!/bin/bash 
TOMCAT=apache-tomcat-7.0.23 
TOMCAT_WEBAPPS=$TOMCAT/webapps 
TOMCAT_CONFIG=$TOMCAT/conf/server.xml 
TOMCAT_START=$TOMCAT/bin/startup.sh 
TOMCAT_ARCHIVE=$TOMCAT.tar.gz 
TOMCAT_URL=http://apache.mirrorcatalogs.com/tomcat/tomcat-7/v7.0.23/bin/$TOMCAT_ARCHIVE 
WAR_FILE=whatever.war 

if [ ! -e $TOMCAT ]; then 
if [ ! -r $TOMCAT_ARCHIVE ]; then 
if [ -n "$(which curl)" ]; then 
    curl -O $TOMCAT_URL 
elif [ -n "$(which wget)" ]; then 
    wget $TOMCAT_URL 
fi 
fi 

if [ ! -r $TOMCAT_ARCHIVE ]; then 
echo "Tomcat could not be downloaded." 1>&2 
echo "Verify that eiter curl or wget is installed." 1>&2 
echo "If they are, check your internet connection and try again." 1>&2 
echo "You may also download $TOMCAT_ARCHIVE and place it in this folder." 1>&2 
exit 1 
fi 

tar -zxf $TOMCAT_ARCHIVE 
rm $TOMCAT_ARCHIVE 
fi 

if [ ! -w $TOMCAT -o ! -w $TOMCAT_WEBAPPS ]; then 
echo "$TOMCAT and $TOMCAT_WEBAPPS must be writable." 1>&2 
exit 1 
fi 

if [ ! -r $WAR_FILE ]; then 
echo "$WAR_FILE is missing. Download it and run this again to deploy it." 1>&2 
else 
cp $WAR_FILE $TOMCAT_WEBAPPS 
fi 

這是一個sh的文件,所以你可以在Linux下使用。

+0

雖然此鏈接可能會回答問題,但最好在此處包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/17102001) –