按說這是個(gè)很簡單的問題蹄葱,不就是一個(gè)war包,cp到服務(wù)器就完事嗎锄列?呵呵图云,我楞是試了好幾個(gè)小時(shí),最后發(fā)現(xiàn)邻邮,竟然如此簡單...記錄一下竣况,讓大家少走彎路吧。
一切從這一篇官方文章開始筒严。覺得是spring.io的教程么丹泉,應(yīng)該沒有錯(cuò)。照著走了一遍沒成功鸭蛙,大致如下:
- 修改主入口文件摹恨,改成這個(gè)鬼樣子:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(applicationClass, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(applicationClass);
}
private static Class<Application> applicationClass = Application.class;
}
基本上就是繼承一個(gè)SpringBootServletInitializer
,重寫configure
方法娶视。
- 修改pom.xml晒哄。主要有以下這么幾個(gè)地方:
<!--package改成war-->
<packaging>war</packaging>
<!--修改spring-boot-starter-web依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--<exclusions>-->
<!--<exclusion>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-tomcat</artifactId>-->
<!--</exclusion>-->
<!--</exclusions>-->
</dependency>
<!--注釋掉內(nèi)嵌tomcat,注意finalname就是你最終打包的包名-->
<build>
<finalName>mytestwar</finalName>
<plugins>
<!--<plugin>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-maven-plugin</artifactId>-->
<!--</plugin>-->
</plugins>
</build>
- 進(jìn)入項(xiàng)目目錄控制臺(tái)肪获,執(zhí)行
mvn clean package
就會(huì)在target下生成一個(gè)war包寝凌,當(dāng)然前提是本機(jī)安裝了maven...。然后你就可以歡快的拿著你剛做好的war包丟到服務(wù)器tom貓的webapps底下去了孝赫,按理說较木,訪問你的服務(wù)器名/你的war包名
就能出來,但是我試了很多次寒锚,都不行劫映,一直報(bào)404
404是如此孤獨(dú)和郁悶的一個(gè)數(shù)字
idea 雖然啟動(dòng)慢了一點(diǎn)违孝,但確實(shí)是一個(gè)可靠的工具
經(jīng)過一番倒持,發(fā)現(xiàn)用idea發(fā)布spring boot非常簡單泳赋,而且不用改變?nèi)魏闻渲么粕!S涗浫缦拢?/p>
- 本機(jī)安裝tomcat,最好安裝一下祖今,很方便校坑。
- idea中設(shè)置tomcat,見我另一篇一起學(xué)SpringMVC之一:使用maven起項(xiàng)目千诬,這里不再多說耍目。注意一點(diǎn),如果你裝的tomcat正在運(yùn)行的話徐绑,把默認(rèn)的8080端口號(hào)改一下邪驮,比如:
比較奇怪的還有,必須在項(xiàng)目的依賴庫中添加如下的tomcat依賴傲茄,否則就報(bào)錯(cuò)毅访,我也不知為什么,(lll¬ω¬)
- 點(diǎn)擊這個(gè)按鈕盘榨,工程將會(huì)跑在你設(shè)置的8888端口喻粹,訪問
localhost:8888/helloworld
應(yīng)該就可以了。并且在項(xiàng)目的target目錄下將會(huì)生成war包草巡,直接拿到服務(wù)器tomcat/webapps/下就能跑(注意訪問路徑要變成serverip:port/mytestwar/helloworld
守呜,也即是要加上你的war包名才可以),不用改任何設(shè)置山憨,不要問我為什么查乒,我也不知道,反正很方便萍歉!
回憶起以前做.net開發(fā)侣颂,vs里點(diǎn)擊運(yùn)行按鈕,也會(huì)啟動(dòng)一個(gè)內(nèi)嵌的iis枪孩,端口號(hào)是比較高的隨機(jī)值憔晒,開發(fā)完成,publish蔑舞,直接丟到服務(wù)器完事拒担。比較一下,微軟確實(shí)更關(guān)心程序員攻询。不說別的从撼,visual studio開發(fā)體驗(yàn)是idea沒法比的,eclipse钧栖。低零。婆翔。還是算了吧
以上,記錄一下掏婶。