本系列文章主要索引如下:
【Spring MVC】Spring Boot 框架开发Web项目之一 前期准备
【Spring MVC】Spring Boot框架开发Web项目之二 Hello Spring Boot
【Spring MVC】Spring Boot框架开发Web项目之三 第一个页面
【Spring MVC】Spring Boot框架开发Web项目之四 将数据传递给视图
【Spring MVC】Spring Boot框架开发Web项目之五 使用Webjars实现质感设计
【Spring MVC】Spring Boot框架开发Web项目之六 表单数据提交
【Spring MVC】Spring Boot框架开发Web项目之七 日期的使用和输出日志
【Spring MVC】Spring Boot框架开发Web项目之八 表单校验
【Spring MVC】Spring Boot 框架开发Web项目之九 Spring Boot项目的打包和部署
【Spring MVC】Spring Boot 框架开发Web项目之十 整合MongoDB
现在我们已经有了一个简单的项目了,我们应该怎么将项目打包,并部署到服务器上呢?
工具
IntelliJ IDEA 16
JDK 1.8
Maven 3.5
Tomcat 1.8
将项目打成war包并部署到Tomcat中
1、首先打开我们的pom.xml文件,修改其中的配置
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>SNAPSHOT</version>
<packaging>war</packaging>
将<packaging>标签中的值修改为“war”,这样我们导出时,就会得到一个 xxx.war的文件了
2、然后我们再在pom.xml文件中添加Tomcat的依赖
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
...
</dependencies>
其中需要添加<scope>provided</scope>
3、修改启动类
通常我们的启动类如下
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
现在我们需要让启动类继承SpringBootServletInitializer类,并重写configur方法,代码如下
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
如果要发布到自己的Tomcat中的时候,需要继承SpringBootServletInitializer类,并且重写configure方法。
如果不发布到自己的Tomcat中的时候,就无需上述的步骤
4、选择IDEA菜单 Run - - Rebuild Project
5、然后再选择菜单 Run - - Build Atifacts...
6、在弹出的菜单中选择 All Atrifacts - - Build
7、执行之后我们可以在项目的target目录下看到如图所示的文件(demo-SNAPSHOT.war)
8、将此文件拷贝到我们的Tomcat的webapps目录下,删除文件名后的版本信息,只保留项目名称(修改demo-SNAPSHOT.war 为demo.war)
9、运行Tomcat 的bin目录下的startup.bat,我们可以看到webapps目录下的war包被自动解压成一个文件
10、访问项目:http://localhost:8080/demo/profile
现在我们可以发现我们项目中使用的webjars模板并没有起到应有的效果。通过浏览器中使用 F12 (开发者工具)我们可以看到控制台中的错误信息,是因为找不到 webjars/jquery/2.1.4/jquery.js 和 webjars/materializecss/0.96.0/css/materialize.css文件.
通过观察我们可以发现,这三个路径中缺少了项目名称 “demo”,实际访问路径应该为:
http://127.0.0.1:8080/demo/....
检查我们default.html文件如下:
<link href="/webjars/materializecss/0.96.0/css/materialize.css" type="text/css" rel="stylesheet" media="screen,projetion"/>
<script src="/webjars/jquery/2.1.4/jquery.js"></script>
<script src="/webjars/materializecss/0.96.0/js/materialize.js"></script>
去掉上述路径之前的“/”,如下:
<link href="webjars/materializecss/0.96.0/css/materialize.css" type="text/css" rel="stylesheet" media="screen,projetion"/>
<script src="webjars/jquery/2.1.4/jquery.js"></script>
<script src="webjars/materializecss/0.96.0/js/materialize.js"></script>
然后再访问:http://localhost:8080/demo/profile , 我们即可看到美丽的页面了。
网友评论