超详细IDEA+SpringBoot+Maven项目打包jar包&war包教程超详细IDEA+SpringBoot+Maven项目打包jar包&war包教程路飞博客

超详细IDEA+SpringBoot+Maven项目打包jar包&war包教程

项目写好之后需要部署上线,这时候就需要把项目打包出来了,一个SpringBoot+Maven的项目应该如何打包呢?接下来详细介绍jar包和war包应该如何导出的方法。

一、jar包打包方法

1、先确定目前的项目是否为jar包的形式,一般新建SpringBoot项目都是默认选jar包的,点击pom.xml文件即可查看,有些项目可能会没有这行代码,因为默认就是jar包形式的。

<packaging>jar</packaging>

2、点击右边侧栏的Maven菜单,找到目前的项目,点开Lifecycle,分别双击cleancompilepackage,三步操作都要提示BUILD SUCCESS

3、这时候就打包成功了,点开左侧项目的target即可看到jar包了,可以直接复制出来使用。

4、测试一下包,因为SpringBoot是内置Tomcat的,所以jar包直接运行就可以了,我这里复制出来放D盘并且改名为hello.jar,然后直接在当前目录按住Shift键+右键打开命令窗口,在命令行输入:java -jar hello.jar  ,然后打开地址localhost:8080/hello验证代码,端口没改动的就是默认的8080,能读到代码的返回内容,说明打包是没有问题的。

二、war包打包方法

1、同样,先确定目前的项目是否为war包的形式,点击pom.xml文件即可查看,更改为war。

<packaging>war</packaging>

2、因为war包是需要外部Tomcat来部署的,所以SpringBoot内置的Tomcat依赖就用不上了,需要添加一个依赖说明,把内置Tomcat排除。

<!-- 排除内置tomcat容器,导出成war包可以让外部容器运行spring-boot项目-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <!-- provided表明该包只在编译和测试的时候用 -->
   <scope>provided</scope>
</dependency>

3、修改启动类,并重写启动方法。这里可以直接修改启动类,其实也可以在同级目录下新建一个ServletInitializer类,二选一,推荐第二种方法,因为需要打jar包时你也要把启动类重新改回来,而把ServletInitializer类删了更方便。

@SpringBootApplication
public class HelloApplication extends SpringBootServletInitializer{
   /*
    * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
    */
   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
      return application.sources(HelloApplication.class);
   }

   public static void main(String[] args) {
      SpringApplication.run(HelloApplication.class, args);
   }
}

/*
 * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
 */
public class ServletInitializer extends SpringBootServletInitializer {

   @Override
   protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
      return application.sources(HelloApplication.class);
   }
}

4、打包,方式同上面一样,点击右边侧栏的Maven菜单,找到目前的项目,点开Lifecycle,分别双击cleancompilepackage,三步操作都要提示BUILD SUCCESS

5、这时候就打包成功了,点开左侧项目的target即可看到war包了,直接复制出来使用。

6、下载一个Tomcat测试一下,把war包复制到Tomcatd的webapps目录下即可,然后运行一下Tomcat,双击Tomcat目录下的bin/startup.bat运行Tomcat

7、访问localhost:8080/hello/hello,这里注意要加上项目名,既http://localhost:[端口号]/[打包项目名]/,测试正常。

三、命令行打包

1、看到这里可能会有个疑问,一定要在IDEA里才可以打包吗?答案肯定不是的,也可以在外面文件管理器打包,方法也很简单,打开对应项目的根目录(即包含pom.xml的目录),按住Shift+右键,打开命令行窗口。

2、输入打包命令mvn clean package ,提示 BUILD SUCCESS即可。

3、然后在target目录就可以看到生成的包了,jar包或者war包都可以用这种方法,前提是符合上面的配置要求。

四、其他问题

1、打包的名字可以由自己定吗?

答:可以,在pom.xml文件的下的<build></build>之间添加一行代码即可,之后打包的就是你设置的名字。

<finalName>www.qianjiyu.com</finalName>

2、运行包之后,访问不了

答:如果项目是没有问题的,一般出现这种问题的可能缺少对应的依赖,比如有些项目需要添加servlet-api依赖、JSP支持等,还有SpringBoot的版本问题等。

转载请注明:路飞博客 » 超详细IDEA+SpringBoot+Maven项目打包jar包&war包教程