springboot多模塊項目,打包成war方式,部署到Tomcat


在springboot項目搭建完成之后,通過Tomcat方式進行部署項目,需進行一下操作

一.DanyuWebApplication入口啟動類改造

 添加繼承關系和Override重寫,具體如下:

package com.danyu.web;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

/**
 * web容器中進行部署
 *
 * @author danyu
 */
@SpringBootApplication()
public class DanyuWebApplication extends SpringBootServletInitializer
{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
    {
        return application.sources(DanyuWebApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(DanyuWebApplication.class, args);
        System.out.println("系統啟動成功");
    }

}

 二。resource目錄下添加transaction.xml文件

<!-- 解決讀不到配置文件的問題,將指定的文件打進war包 -->
<resources>
    <resource>
        <!-- 要打進war包的文件所在的目錄 -->
        <directory>src/main/resorce</directory>
        <includes>
            <include>**.*</include>
            <include>**/*.*</include>
            <include>**/*/*.*</include>
        </includes>
        <filtering>true</filtering>
    </resource>
</resources>

 三.修改子模塊(danyu-web)pom.xml文件

3.1.添加<packaging>war</packaging>,將打包方式改為war

3.2 spring-boot-starter-web忽略內嵌tomcat

 

     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--忽略內嵌tomcat,打包部署到tomcat。注*本地運行的時候要把這一段忽略引入個注釋掉,要不然項目啟動不了 -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

 

 3.3 添加spring-boot-starter-tomcat

<!-- 這個依賴讓你能夠在程序入口類:xxxAppAplication中直接執行main方法啟動tomcat -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <!-- 但是這里一定要設置為provided -->
            <scope>provided</scope>
        </dependency>

 3.4 依賴其他子模塊的需注意,添加<type>jar</type>

    <!-- 通用工具-->
        <dependency>
            <groupId>com.zbbz</groupId>
            <artifactId>zbbzfw-common</artifactId>
            <version>1.0.1</version>
            <!-- 該模塊的packaging為war,所以下面兩項必須設置,否則打包會出出錯  -->
            <type>jar</type>
            <!--            <classifier>classes</classifier>-->
        </dependency>    

 3.5 打包配置

<build>
        <finalName>danyu</finalName>
        <plugins>
            <!-- war包插件 -->
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <!-- 把class打包jar作為附件 -->
                    <attachClasses>true</attachClasses>
                </configuration>
            </plugin>
            <!-- 指定啟動入口 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.danyu.web.DanyuWebApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>

    </build>

 整個pom.xml完整配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>danyu</artifactId>
        <groupId>com.danyu</groupId>
        <version>0.0.1</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>danyu-web</artifactId>
    <description>控制模塊</description>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--忽略內嵌tomcat,打包部署到tomcat。注*本地運行的時候要把這一段忽略引入個注釋掉,要不然項目啟動不了 -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- 這個依賴讓你能夠在程序入口類:xxxAppAplication中直接執行main方法啟動tomcat -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <!-- 但是這里一定要設置為provided -->
            <scope>provided</scope>
        </dependency>

        <!-- 通用工具-->
        <dependency>
            <groupId>com.zbbz</groupId>
            <artifactId>zbbzfw-common</artifactId>
            <version>1.0.1</version>
            <!-- 該模塊的packaging為war,所以下面兩項必須設置,否則打包會出出錯  -->
            <type>jar</type>
            <!--            <classifier>classes</classifier>-->
        </dependency>

    </dependencies>

    <build>
        <finalName>danyu</finalName>
        <plugins>
            <!-- war包插件 -->
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <!-- 把class打包jar作為附件 -->
                    <attachClasses>true</attachClasses>
                </configuration>
            </plugin>
            <!-- 指定啟動入口 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.danyu.web.DanyuWebApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>

    </build>

</project>

 


免責聲明!

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



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