SpringBoot项目至Linux服务器下的tomcat下运行(CentOS6)
打包前一定保证所有的jar包都引入了maven里,要不然会报类找不到等错误导致打包失败.这里有个坑,如果你是从ssm项目迁移过来的,一定要删除WEB-INF下的lib下面的包,要不然部署到服务器会出很多意想不到的错误,因为你本地是正常运行的,所以错误很难查到,这里用的是jsp所以打的是war包,而且用的是服务器上的tomcat,所以要排除自带的Tomcat
1:修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
public class HdApplication extends SpringBootServletInitializer implements CommandLineRunner{public static void main(String[] args) {
SpringApplication.run(HdApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
2 修改pom文件中jar 为 war,<build>节点中增加<finalName>hdys</finalName>,可生成自定义war包的名字
<groupId>com.hdys.www</groupId>
<artifactId>HD</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<finalName>hdys</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>${project.basedir}/lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>${project.basedir}/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<targetPath>BOOT-INF/classes/</targetPath>
</resource>
</resources>
</build>
<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>
:4:打包部署到容器
使用命令 mvn clean package 打包后,同一般J2EE项目一样部署到web容器。
或cmd 进入项目根目录:mvn package打包
成功后会在项目根目录生成target文件夹,进去后找到生成的war
5:然后用上传工具上传到服务器