一.修改打包方式
<packaging>war</packaging>
二、移除嵌入式tomcat插件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<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>
<!-- provided 表明该包只在编译和测试的时候使用,去除默认的tomcat -->
<scope>provided</scope>
</dependency>
三、添加servlet-api的依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
四、修改打包后名称
<build>
<!-- 打包时war包名称 -->
<finalName>ROOT</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
五、修改启动类,并重写初始化方法
package com.example;
import org.springframework.boot.Banner;
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;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@SpringBootApplication
public class ExampleApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(ExampleApplication.class);
application.setBannerMode(Banner.Mode.OFF);
application.run(args);
}
@Override // 为了打包springboot项目
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
六 ecipse下打成war包
run as ----> maven clean ----->maven install 打成war包在target包中查看
或者
在项目根目录下(即包含pom.xml的目录),在命令行里输入
[或者在idea工具的Terminal命令行输入也可以]:
mvn clean package -Dmaven.test.skip=true即可, 等待打包完成,
出现[INFO] BUILD SUCCESS即为打包成功。
七 将war包部署到服务器的tomcat上
1.如果报名是ROOT启动tomcat后直接访问:http://localhost:8080/
2.
首先找一个地方新建一个文件夹,这里演示用D:\project\first
然后将war包放到这个文件夹下
接着打开tomcat的conf文件夹下的server.xml文件
将其中Host配置部分修改成如下格式
<Host name="masterqm.zhanbutang.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/search" docBase="D:\project\search\searchProject.war" debug="0" reloadable="true"/>
</Host>
其中name是公司的域名, path是要附加在url后面的项目名,docBase是项目放置的位置,如果是war包,则要加war后缀名,
配置好了以后,重启tomcat 就可以直接线上运行了
错误:springboot项目启动抛: java.lang.NoClassDefFoundError: javax/el/ELManager
将编译器下的el-api.jar放到apache-tomcat/lib目录下