SpringBoot项目如何打成war包和jar包的(运行方案)
相信很多人在百度的情况下找了很多方法(确实打war失败,推荐方案二直接jar运行启动项目 还有一种方法就是在项目开发初期就可以解决这个难题的前提是IEAD开发
1.
2.
3. 大家可以试试 修改配置 反正我是跑起来了 )
大致步骤如下:
1、配置pom.xml的tomcat,
2、在pom.xml配置springboot的启动类,
3、配置打包方式,
4、配置启动类情况。(这个地方仓库配置需要修改一下本地仓库位置)
打war包
1、干掉pom.xml的内置tomcat
删除内置的tomcat,不然打成war包,tomcat和springboot内置的tomcat搞一起,无法启动项目。
<!--把内置的tomcat给注释掉 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
2、plugin配置pom.xml的启动类
配置Springboot的启动类
<build>
<plugins>
<!-- 添加spring的插件, 就可以直接通过 mvn spring-boot:run 运行了 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.yellowcong.ConfigMain</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<!--在这里添加 springloader plugin,热部署 -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.4.RELEASE</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
3、修改打包方式
修改打包的方式为<packaging>war</packaging>
方式。这个大家都知道啦.
4、修改启动类,继承SpringBootServletInitializer添加继承的类为SpringBootServletInitializer ,然后复写里面的configure方法,设定启动类。@SpringBootApplication
@EnableAutoConfiguration
public class ConfigMain extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(ConfigMain.class); } public static void main(String[] args) {
SpringApplication.run(ConfigMain.class, args);
}
}
5、打包测试
通过命令mvn clean package
打包.
打jar包
1、添加内置tomcat
添加内置的tomcat(缺少这个项目无法启动)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
- 1
- 2
- 3
- 4
- 5
2、配置启动类
配置启动类<build>
<plugins>
<!-- 添加spring的插件, 就可以直接通过 mvn spring-boot:run 运行了 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.yellowcong.ConfigMain</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<!--在这里添加 springloader plugin,热部署 -->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.4.RELEASE</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
3、配置打包方式
修改打包的方式为 <packaging>jar</packaging>
,这个大家都知道的啦;
4、启动类
比较的简洁,没有啥继承的类,就是一个普通的main函数。
@SpringBootApplication
@EnableAutoConfiguration
public class ConfigMain{
public static void main(String[] args) {
SpringApplication.run(ConfigMain.class, args);
}
}
5、测试
通过命令mvn clean package
打包
出现这个问题,多半是本地仓库有问题,解决的办法,就是修改本地仓库的 <localRepository>D:/maven/apache-maven-3.5.0/storage2</localRepository>
路径
ERROR] 28054
java.lang.ArrayIndexOutOfBoundsException: 28054
at org.codehaus.plexus.util.xml.pull.MXParser.parsePI(MXParser.java:2502)
at org.codehaus.plexus.util.xml.pull.MXParser.parseEpilog(MXParser.java:1604)
at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1434)
at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1131)
此外,jar运行项目的方式:
在linux环境下或者cmd命令窗口中
有2中 java-jar xxx.jar (这种非后台运行)
nohup java-jar xxx.jar (后台运行)
war包运行就不用多说了,丢到webapps下面 然后 cd ../bin/sh start.sh 启动tomcat
推荐阅读
-
SpringBoot项目如何打成war包和jar包的(运行方案)
-
单纯的Java项目打成一个可运行jar包
-
springboot项目打成jar包可运行,但打成war包无法运行
-
springboot项目打包成jar或war包的方式(引用了本地jar包的)
-
springBoot打为Jar包如何在windows下cmd运行和停止
-
jenkins部署SpringBoot的jar包项目到docker容器并运行
-
idea打包SpringBoot项目打包成jar包和war
-
Springboot项目打war包docker包找不到resource下静态资源的解决方案
-
Springboot打成war包并在tomcat中运行的部署方法
-
Springboot打成war包并在tomcat中运行的部署方法