springboot web项目打jar或者war包并运行的实现
(一)springboot web项目打jar包
1、打包
两种打包方式
maven命令打包
切换目录到工程根下,pom.xml所在位置,运行maven的打包命令
mvn clean package -Dmaven.test.skip=true
IDEA 工具执行maven任务打包
会在xxx项目模块下/target目录下生成xxx-0.0.1-SNAPSHOT.jar
2、运行jar包
启动运行(切换目录到target下,执行命令)
F:\Java\idea-workspace\shixun02\web1>cd springboot1
F:\Java\idea-workspace\shixun02\web1\springboot1>cd target
F:\Java\idea-workspace\shixun02\web1\springboot1\target>java -jar web1-0.0.1-SNAPSHOT.jar
注意:如果启动springboot项目时,想自己设置启动服务器端口,命令如下:
java -jar web1-0.0.1-SNAPSHOT.jar --server.port=8081
(二)springboot web项目打war包,独立部署到tomcat运行
使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat。现在需要将项目打包,并部署到服务器tomcat下面,步骤如下:
1.修改pom.xml文件。将jar修改为war。
<groupId>com.youzhong</groupId> <artifactId>web1</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>
2.在pom.xml文件中将build节点中设置finalName为server.context-path中的路径。就是项目名称(打包的名称)。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <finalName>web1</finalName> </build>
3. 在spring-boot-starter-web依赖中移除tomcat模块。
<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. 添加servlet依赖。
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
5. 新建启动类。(需要和之前的启动类在同一级目录)
public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意这里要指向原先用main方法执行的Application启动类 return builder.sources(Web1Application.class); } }
注意:
Web1Application.class就是springboot生成的工程默认启动类
如:Web1Application.class即有@SpringBootApplication注解的主启动类 。
6. 使用mvn命令打包
mvn clean package -Dmaven.test.skip=true
或者
使用IDEA中的maven任务
7. 将war包拷贝部署到tomcat的webapps目录下面,启动tomcat并测试。