Springboot項目打包成war在Tomcat發佈war包部署

Springboot發佈war包部署

項目發佈上線的時候,我們需要將項目打包成war包的形式,放到Tomcat的webapps下,然後運行Tomcat發佈項目。那麼在IDEA中SpringBoot項目怎麼打包成war包的形式呢?
首先新建一個SpringBoot項目,配置打包方式爲war

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.jiuyue</groupId>
    <artifactId>springboot-war</artifactId>
    <version>1.0.0</version>
    <!--打包方式-->
    <packaging>war</packaging>

這是一個web項目,前端頁面我們使用JSP,則需要的依賴有:

<dependencies>
        <!--web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--引入springBoot 內嵌的Tomcat對JSP的解析包-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>
        <!--servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <!--jsp-->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
        </dependency>
        <!--jstl-->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>

在application.properties配置文件中配置前後綴

server.port=8088
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp

控制器類,提供訪問接口

@Controller
public class WarController {
    @RequestMapping("war/json")
    @ResponseBody
    public Object json( ){
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("name","九月json");
        return map;
    }

    @RequestMapping("war/jsp")
    public String home(Model model){
        System.out.println("jsp");
        model.addAttribute("name","九月jsp");
        return "home";
    }
}

需要Maven插件,以及需要配置webapp下面的資源文件信息

 <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/webapp</directory>
                <targetPath>META-INF/resources</targetPath>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>
    </build>

在啓動類需要繼承SpringBootServletInitializer並重寫它的configure方法。

/**
 * Create bySeptember
 * 2019/3/3
 * 14:56
 */
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

在Maven Projects的項目找到該項目===》打開項目===》Lifecycle===》install。
則在maven倉庫中生成了項目的war包。
把war包複製到你的Tomcat的webapps下運行Tomcat的就完成了發佈war包部署

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章