idea springboot 打包|8月更文挑战

105 阅读1分钟

这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战

1. Jar包

maven-->install

clipboard.png

java -jar jar包名称

clipboard.png

clipboard.png

clipboard.png

war包

clipboard.png

clipboard.png

clipboard.png

clipboard.png

不成功,按照下面 两步走,解决当前这个在外部tomcat没办法运行起来并访问的问题:

第一步:

   新建一个SpringBootStartApplication 继承自 SpringBootServletInitializer

 作用:因为在外部容器部署的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,

    此时我们需要在启动类中继承SpringBootServletInitializer并实现configure方法,这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似

【注意】:这个新建的类,与springboot的启动类是同级的

clipboard.png

将springboot内置的Tomcat依赖移除

clipboard.png

<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>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

thymeleaf 模板引擎依赖移除

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

clipboard.png

添加对 servlet-api 的依赖 我是没用到

<!--<dependency>-->
<!--<groupId>org.apache.tomcat</groupId>-->
<!--<artifactId>tomcat-servlet-api</artifactId>-->
<!--<version>7.0.42</version>-->
<!--<scope>provided</scope>-->
<!--</dependency>-->

启动项目时发现 :(我使用tomcat7会出现该问题 ,替换为tomcat8 完美解决)

clipboard.png

Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager 

tomcat提供的el-api 和项目里面的el-api.jar冲突;这时候你需要去找到自己本机上用的el-api的版本,copy到tomcat的lib目录下,覆盖原来的jar包

421101657457.png

一般在idea或者eclipse的lib目录下,可以用全局搜索查找. 

这个时候就可以正常交启动并访问了.

clipboard.png