下面讲讲如何打包SSM和springboot项目,并部署到云服务器上。
由于使用的IDE不同,有的使用eclipse,有的使用idea,所以如果在IDE中按照 maven clean 再 maven install的方式打包会稍有不同,下面介绍一种通用的方式,不论SSM项目还是springboot项目,不论使用的是eclipse还是idea,我们直接在dos界面,使用命令进行打包。
以一个例子进行演示:
首先需要在pom.xml中定义打包的类型
然后在dos界面,进入该项目下,运行下面的命令进行打包。
mvn clean package -D maven.test.skip=true
这样就会在我们自己设置的output目录下(一般为target目录)生成该项目的war包
这样,我们就得到了该项目的war包,然后我们可以把springboot和SSM的war包放到tomcat的webapp目录下就可以了。
~~~~~~~~~~~~~~~~~~~~~~~~~
将springboot项目当为普通的web项目 部署在tomcat的webapp下时,需要加上下面这个类,并让它被扫描到。
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* 继承SpringBootServletInitializer,相当于以web.xml的方式去启动部署
* @author Administrator
*
*/
public class WarStartApplication extends SpringBootServletInitializer{
/*重写该方法
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
//使用web.xml运行应用程序,指向springboot,最后启动springboot
return builder.sources(ProfileApplication.class);
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~
如果我们打包的是springboot项目,还有第二种方式,我们还可以使用springboot自带的tomcat,可以使用jar -jar 的命令 启动该项目,也是可以的。
java -jar /developer/collegeo2o-0.0.1-SNAPSHOT.war
不过使用java -jar 启动该springboot项目时,如果我们关闭了SSH的连接终端,或者退出该运行模式时,那么该springboot内置的tomcat就相当于被关闭了,这样我们就无法访问到项目,所以我们可以使用一点点linux的知识,编写脚本,在后台运行该war。
nohup java -jar /developer/collegeo2o-0.0.1-SNAPSHOT.war &
然后我们执行该脚本就相当于启动了该项目,只有在我们重启服务器或者强行关闭该进程的时候该项目才会停止。
=========================================================================
以上就是在使用maven构建项目的时候,打包并部署SSM和springboot项目。两者都是相似的,都可以部署到我们自己的tomcat服务器中,特殊的是,springboot项目可以独立运行(内置tomcat); 另外如果部署springboot时使用了我们自己的tomcat,那么需要在server.xml中配置docBase 资源才能正常访问到,而使用内置tomcat时,我们已经在WebMvcConfig类中配置了资源的映射,所以不需要在加docBase.