因爲近期想從新開發一個微信公衆號,須要將一年前的web項目,轉爲spring boot微服務項目,所以有了這篇文章的誕生。php
BAE,百度應用引擎、百度雲,與此相似的有SAE,阿里雲等。html
至關於在百度雲上購買本身的服務器及域名,適用於node.js、python、php、java項目。java
在部署列表一欄,添加部署,能夠購買本身須要的服務。(本文代碼版本工具爲SVN,項目類型java8-tomcat)node
注:可根據自身需求設置執行單元參數,已提高服務性能。python
部署後,複製SVN地址。web
將項目代碼上傳到BAE提供的SVN地址上,在此過程當中遇到一系列問題,一下將一一說明。spring
一、因爲BAE上不能部署jar包的項目,所以需將springboot項目打成war,以下:apache
a.先將pom文件,作一下處理,去除springboot自帶的tomcat容器,並添加外部tomcat依賴。 api
<packaging>war</packaging>
...
<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> <!-- 添加servelt依賴 --> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <version>8.0.36</version> <scope>provided</scope> </dependency>
b.springboot啓動類繼承SpringBootServletInitializer,並添加以下代碼:瀏覽器
@Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){ return builder.sources(啓動類名稱.class); }
c.使用maven命令將項目打成war包,
mvn clean package -Dmaven.test.skip=true
d.若是須要指定生成war的名字,能夠在pom文件中設置:
<build>
<finalName>war包名稱</finalName> ... ... </build>
二、在項目的target目錄下複製生成的war包,上傳至BAE提供的svn地址上,並在瀏覽器中訪問項目路徑。
注:BAE下默認爲ROOT.war,如需訪問其餘war包,路徑應爲:域名+war包名稱,訪問項目路徑爲:域名+war包名稱+方法路徑。
三、隨着項目代碼的增長,須要及時提高BAE的性能,不然服務將出現異常。
四、必須注意版本問題,因爲JDK使用的爲1.8,tomcat爲7,致使項目部署到BAE上啓動出錯,沒法使用。所以必須注意版本兼容問題。