美文网首页Spring Boot学习笔记
Spring Boot学习笔记(二)打包与发布

Spring Boot学习笔记(二)打包与发布

作者: btnRetry | 来源:发表于2017-08-05 10:14 被阅读0次

    用IDEA新建Spring工程时会有选项选择打包成jar或者是war包,其实项目打包还有一种ear包,三者其实都是压缩包,区别在于压缩了什么内容。具体可以看这里:jar、war、ear打包的异同

    一、打包成jar发布

    Spring Boot默认打包成jar的时候,运行Application是使用内嵌的Tomcat服务器的,免去了复杂的配置过程,所以在新工程里只写了个Controller就能运行起来并且可以被访问。打包成jar,部署的时候也可以直接通过

    java -jar xxx.jar
    

    运行应用,或者通过

    nohup java -jar xxx.jar &
    

    让应用在后台运行,不打印信息,这种情况下要想结束进程我一般的做法是:

    #查找端口号(如8080)对应的进程号,如为45500
    lsof -i :8080 
    #杀死进程
    kill -9 45500
    

    二、打包成war发布

    使用jar包方便是方便,但是不适于部署包含前后端Web应用的项目,比如网站;有些情况下必须要使用外部的Tomcat服务器。
    这时就需要新建基于war的工程,或者把jar改成war,怎么改呢?

    2.1 修改pom.xml

    2.1.1 将packaging打包方式改成war

        <packaging>war</packaging>
    

    2.1.2 添加外部tomcat的依赖

            <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
            </dependency>
    
    2.2 修改Application
    //@SpringBootApplication
    //public class DemoApplication {
    //
    //    public static void main(String[] args) {
    //        SpringApplication.run(DemoApplication.class, args);
    //    }
    //}
    
    @SpringBootApplication
    public class DemoApplication extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(DemoApplication.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    
    2.3 部署

    打包成war后,将target目录下的war包复制到tomcat服务器下面的webapps目录下,启动/重启tomcat,tomcat会自动解压war,这时便可以访问应用了。值得注意的是,访问路径要加下war包的名字,比如jar包访问时为:localhost:8080/sayHi,war包名为demo.war,那此时的访问路径应为:localhost:8080/demo/sayHi。

    相关文章

      网友评论

        本文标题:Spring Boot学习笔记(二)打包与发布

        本文链接:https://www.haomeiwen.com/subject/vwjilxtx.html