spring boot 通過Maven + tomcat 自動化部署


使用maven創建的springboot項目,默認是jar包,springboot還有自己帶的tomcat。

現在為了簡單實現本地自動發布項目到服務器,需要通過發布war包的形式,通過maven將項目發布到tomcat的webapps目錄下。

1.將spring boot發布war包:

     修改pom.xml文件,將jar修改為war:

<packaging>war</packaging>

   在spring-boot-starter-web依賴中移除tomcat模塊:

<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>

  添加servlet依賴:

<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>

 

 

   修改新建啟動類

public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意這里要指向原先用main方法執行的Application啟動類 return builder.sources(DemoApplication.class); } }

 

這樣項目發布時就是war包了。

 

2.maven自動部署到遠程tomcat教程

首先,配置tomcat的manager

 

編輯遠程tomcat服務器下的conf/tomcat-users.xml,在末尾增加(其實只要拉到文件末尾,去掉注釋改一下就可以了)

 

<role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="admin" password="password" roles="manager-script"/> <user username="root" password="password" roles="manager-gui"/>

將上面的password改為自己的密碼

保存tomcat-users.xml。

在tomcat服務器的conf/Catalina/localhost/目錄下創建一個manager.xml文件,寫入如下值:

<?xml version="1.0" encoding="UTF-8"?> <Context privileged="true" antiResourceLocking="false" docBase="${catalina.home}/webapps/manager"> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" /> </Context>

 

 然后在瀏覽器中輸入http://serverip:port/manager/html,此時會彈出要求輸入用戶名和密碼對話框,輸入manager-gui對應的用戶和密碼登錄管理控制台(其中serverip為服務器ip,如果服務器在本地就是localhost,端口為tomcat端口,默認8080)。

以此確認manager是否配置正確。正確結果示例如下:

 

在maven項目中添加配置

在pom.xml文件中,在plugins節點下添加如下plugin節點

<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://serverip:port/manager/text</url> <username>admin</username> <password>password</password> <update>true</update> <path>/webapp</path> </configuration> </plugin>

將上面的serverip和port換成自己tomcat服務器的ip和端口。密碼換成上面配置的manager-script角色的密碼。path改為項目在tomcat服務器中的部署路徑。


然后進行部署,如果是第一次部署,運行mvn tomcat7:deploy進行自動部署(對於tomcat8,9,也是使用tomcat7命令),如果是更新了代碼后重新部署更新,運行mvn tomcat7:redeploy,如果第一次部署使用mvn tomcat7:redeploy,則只會執行上傳war文件,服務器不會

自動解壓部署。如果路徑在tomcat服務器中已存在並且使用mvn tomcat7:deploy命令的話,上面的配置中一定要配置<update>true</update>,不然會報錯。

3.在本地eclipse中發布項目到服務器:

 

 日志中可以看到成功的提示。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM