下面是关于“SpringBoot项目jar和war打包部署方式详解”的完整攻略:
1. Jar包部署方式
1.1 打包Jar包
在pom.xml文件中添加以下配置,可以打包成可执行jar文件:
<build>
<plugins>
<!--打包为可执行jar文件-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
打包方式:
mvn clean package
1.2 运行Jar包
在命令行中运行以下命令,启动应用程序:
java -jar yourApplication.jar
1.3 示例1
以HelloWorld项目为例,首先创建一个spring-boot项目,然后添加一个HelloController:
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello World!";
}
}
然后运行以下命令打包成可执行jar文件:
mvn clean package
最后在命令行中运行以下命令,启动应用程序:
java -jar yourApplication.jar
通过浏览器访问http://localhost:8080/hello
,可以看到输出"Hello World!"的页面。
1.4 示例2
以一个名为myapp的应用程序为例,它将jar包作为一个单独的文件部署:
创建一个myapp项目,然后添加如下代码:
@SpringBootApplication
public class MyappApplication {
public static void main(String[] args) {
SpringApplication.run(MyappApplication.class, args);
}
}
然后运行以下命令打包成可执行jar文件:
mvn clean package
最后将myapp-0.0.1-SNAPSHOT.jar文件复制到需要部署的文件夹中,这里我们选择复制到/opt/myapp
文件夹中,然后在命令行中进入此文件夹运行以下命令:
java -jar myapp-0.0.1-SNAPSHOT.jar
通过浏览器访问http://localhost:8080
即可看到页面。
2. War包部署方式
2.1 修改pom.xml文件
把spring-boot-starter-web的scope配置从默认的compile改为provided:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
添加maven-war-plugin插件:
<build>
<plugins>
<!-- 打包为war文件 -->
<plugin>
<groupId>org.apache.maven.plugins
</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warSourceDirectory>src/main/webapp</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
2.2 运行打包War文件
运行以下命令打包成war文件:
mvn clean package
最后将War文件复制到tomcat的webapps文件夹下,重启tomcat即可。
2.3 示例1
以HelloWorld项目为例,首先创建一个spring-boot项目,然后添加一个HelloController(参见Jar包部署方式中的示例1)。
接下来添加一个webapp目录,并在其中创建一个WEB-INF目录。在webapp目录中创建一个index.jsp文件并输入以下内容:
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<div class="container-fluid">
<h1>Hello World!</h1>
</div>
</body>
</html>
在WEB-INF目录中创建一个web.xml文件并输入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>My Webapp</display-name>
<description>My web application</description>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
然后运行以下命令,将项目打包成war文件:
mvn clean package
在tomcat中部署war文件,然后在浏览器中访问【http://localhost:8080/】即可看到页面。
2.4 示例2
以myapp应用程序为例,我们按照以下步骤进行部署:
创建一个myapp项目,然后添加如下代码
@SpringBootApplication
public class MyappApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyappApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MyappApplication.class, args);
}
}
然后添加一个SampleController:
@RestController
public class SampleController {
@GetMapping("/hello")
public String hello() {
return "Hello World!";
}
}
添加一个application.properties配置:
server.servlet.context-path=/myapp
server.port=8080
添加一个spring-mvc.xml配置文件,代码如下:
<mvc:annotation-driven/>
<context:component-scan base-package="com.example.myapp.controller"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
在webapp目录下添加WEB-INF目录,然后在其中创建一个jsp目录,在jsp目录下创建一个测试页面test.jsp,代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<div class="container-fluid">
<h1>Hello World!</h1>
</div>
</body>
</html>
添加一个控制器类MyController:
@Controller
public class MyController {
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String displayMap(ModelMap map) {
map.addAttribute("value", "Hello JSP and Spring MVC");
return "test";
}
}
运行以下命令打包成war文件:
mvn clean package
在tomcat中部署war文件后,在浏览器中访问http://localhost:8080/myapp/hello
,即可看到输出Hello JSP and Spring MVC的页面。
以上是关于SpringBoot项目jar和war打包部署方式的详细攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot项目jar和war打包部署方式详解 - Python技术站