SpringBoot - Maven方式打包

article/2025/9/19 13:29:09

SpringBoot 为当前最流行的JAVA框架 , 内嵌了 Tomcat 服务器 , 我们不用再像以前 Spring 那样打包成 war , 然后将 war 扔到 tomcat 中运行 。 我们现在可以直接将 SpringBoot 项目打包为一个内置 tomcat 的可运行 jar , 通过 java -jar xxx.jar 直接运行 (方便易用) 。

打包 SpringBoot 的方式有很多

  1. 使用 Maven打包 jar (主流)
  2. 使用各种开发工具打包Jar . 如 : idea , eclipse 等等 。

这里我们使用主流的Maven方式

1、在pom.xml中添加SpringBoot Maven插件 :

<!-- <build > 主要用于编译设置 -->
<build><!-- 定义打包成jar的名字 --><!-- 这里如果不定义 , 打包成的jar名字格式为 : <artifactId> + <version> --><finalName>thymeleaf</finalName><plugins><!--SpringBoot maven插件--><!-- 可以将应用打成一个可执行的jar包 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 设置启动入口 --><!-- manClass即使不配置 , SprinBoot也在打包的时候也清楚入口是哪个 , 其实不用配置 --><configuration><mainClass>com.bella.ThymeleafApplication</mainClass></configuration></plugin></plugins>
</build>

2、进入项目目录

  • 通过开发工具进入项目 (如 : idea Terminal)
  • 使用 Dos / Shell 进入项目目录

IDEA 方式进入项目目录

Dos 方式进入项目目录

3、执行打包命令

mvn clean package -Dmaven.test.skip=true

Maven方式打包SpringBoot可运行Jar
打包成功

Maven 打包成功后 , 可以通过控制台日志查看 Jar 的位置 . ( 如上图 )

  • Building jar : jar的绝对路径

4、运行jar

  1. 打开Dos控制台 (cmd)
  2. 进入 jar 目录 (cd jar绝对路径)
  3. 运行jar (java -jar xxx.jar)

运行jar成功

异常解决

1、 打包成功,运行jar报错 : 没有注清单属性

出现这种情况的原因 :
你的pom.xml 没有引入 SpringBoot Maven插件 . (第一步 在pom.xml中添加SpringBoot Maven插件 )

注意 : 即使你没有引入 SpringBoot Maven 插件也可以构建成功。是因为 maven 本身可以构建成功。但是Maven并不知道你的项目入口在哪里。这就是为什么要引入 SpringBoot maven 插件的原因。

2、打包失败

打包失败

这个错误的意思 :
maven 打包jar的时候是要覆盖之前的jar的。但是maven发现之前的jar正在被使用 , 无法进行删除覆盖操作。
解决办法 :
这种情况一般是因为此 jar 被打开 或者 被 启动中。 我们只要关闭了使用他的程序即可。 比如 : 关闭启动他的 DOS 窗口。 关闭打开他的压缩工具等等。

3、访问Action跳转View找不到

我这里使用的是 SpringBoot + thymeleaf . 当访问某个Action地址服务器进行视图跳转的时候报错 : 找不到该页面 .
比如 : 我访问 http://127.0.0.1:1118/index

访问报错
找不到视图

导致这个错误的原因 :
SpringMVC 返回视图的时候 , 页面目录前面多加了一个 “/” 如 : return “/index”;

去掉目录前的 /

像上面返回视图时多加了一个 “/”
你在用idea直接启动 SpringBoot 项目访问页面的时候没有问题
打包成 jar 访问就找不到页面

具体为什么 ? 没有细致研究。 反正去掉 “/” 就可以了。 也不影响idea的开发。

知识扩展

  • SpringBoot 启动命令大全
  • SpringBoot Maven 打包命令大全

项目源码


http://chatgpt.dhexx.cn/article/vjoUcK4O.shtml

相关文章

Maven打包操作

对于企业级项目&#xff0c;无论是进行本地测试&#xff0c;还是测试环境测试以及最终的项目上线&#xff0c;都会涉及项目的打包操作。对于每个环境下的项目打包&#xff0c;对应的项目所需要的配置资源都会有所区别&#xff0c;实现打包的方式有很多种&#xff0c;可以通过an…

Maven打包时指定配置文件

springboot项目通常会有部署到测试、演示、生产等多个环境&#xff0c;每次打包时都需要修改配置文件或指定配置文件&#xff0c;既麻烦&#xff0c;也不便于war包部署和版本管理。可以在maven打包时指定配置文件&#xff0c;实现打包配置文件零修改。 1、修改pom文件&#xff…

Maven打包插件介绍

文章目录 1. maven介绍2. 生命周期及插件2.1 总览生命周期2.2 打包插件2.2.1 maven-jar-plugin2.2.2 maven-assembly-plugin2.2.3 maven-shade-plugin2.2.4 maven-war-plugin2.2.4.1 jar和war 2.2.5 maven-source-plugin 3. springboot打包插件4.实际操作4.1 一个可用的打包插件…

maven项目如何打包

说明(java)&#xff1a; &#xff08;1&#xff09;胖包&#xff1a;将maven项目中的依赖包和项目打为一个包 。 &#xff08;2&#xff09;瘦包&#xff1a;直接打包&#xff0c;不打包依赖包&#xff0c;仅打包出项目中的代码到JAR包中。 1.打瘦包 2.只打胖包 2-1.快捷键…

Maven工程打包jar

Maven打包一般可以生成两种包一种是可以直接运行的包&#xff0c;一种是依赖包&#xff08;只是编译包&#xff09;。Maven默认打包时jar&#xff0c;如果需要修改其他类型。可以修改pom.xml <packaging>jar/ear/ejb</packaging> Maven工程默认引入的插件: 1.一般…

Maven打包的三种方式

Maven可以使用mvn package指令对项目进行打包&#xff0c;如果使用Java -jar xxx.jar执行运行jar文件&#xff0c;会出现"no main manifest attribute, in xxx.jar"&#xff08;没有设置Main-Class&#xff09;、ClassNotFoundException&#xff08;找不到依赖包&…

maven命令行打包

maven打包项目 maven项目打包命令行maven打包本地资源文件夹使用命令行打包(maven) maven项目打包 当前的Java项目中我们都习惯使用maven来管理项目中的jar包的依赖关系&#xff0c;同时通过maven我们也可以将项目打包到"本地" 或者 “自己远程的maven仓库中” 命令…

maven打包三种方式

方法一&#xff1a;cmd 控制台打包&#xff08;比较不推荐&#xff09; 首先安装maven插件百度下载一个&#xff0c;配置环境变量什么的~在cmd控制台能mvn version能有数据出现。 打包只需要到项目的根目录下~在cmd敲入mvn package.不推荐原因&#xff1a;报错后的报错信息比…

Maven------打包

1.软件工程 软件工程的核心思路:写代码也是一件工程,也是一件非常复杂的事情,正因为复杂,所以容易出现问题,想一些办法来进行预防和解决问题,我们就要使用一些第三方库; 如何使用库和框架来进行解决问题? 软件开发中也会有很多的常见问题和常见的场景,针对这些场景和问题也…

探究maven项目的打包方式

目录 前言 概念 准备 打包方式 idea自带的maven工具 小包打包第一种方式 小包打包第二种方式 小包总结 大包打包 maven-compiler-plugin 依赖配置 打包测试 效果 maven-jar-plugin 和 maven-dependency-plugin maven-jar-plugin maven-dependency-plugin 依赖配…

6.Maven打包操作

对于企业级项目&#xff0c;无论是进行本地测试&#xff0c;还是测试环境测试以及最终的项目上线&#xff0c;都会涉及项目的打包操作。对于每个环境下的项目打包&#xff0c;对应的项目所需要的配置资源都会有所区别&#xff0c;实现打包的方式有很多种&#xff0c;可以通过an…

Maven 的打包方式

一、前言 刚开始实习不到一个月的时候&#xff0c;从师兄手中接手了团队的项目&#xff0c;当时第一次听到了 “大包”、“小包” 的概念&#xff0c;只见师兄一顿操作&#xff0c;使用 Maven 将项目进行了打包。当时不太理解&#xff0c;只是记得两点&#xff1a; 如果想让项…

Java中main()方法的使用

一、main()方法的使用说明 main()方法作为程序的入口。main()方法也是一个普通的静态方法。main()方法可以作为我们与控制台交互的方式&#xff08;之前&#xff1a;使用Scanner&#xff09;。 二、main()方法使用举例 MainDemo.java public class MainDemo {public static…

JAVA中main方法如何执行。

public class Test{public static void main(String[] args){System.out.println("hello world");}} 上述就是java代码中的一段简单的main函数的代码&#xff0c;代码执行后输出结果为&#xff1a;hello world main函数&#xff1a; 在java中main函数是一个特殊的…

深入理解Java的main方法

一、简单介绍 在我们的Java程序中都会出现一个名称为main的方法&#xff0c;我们发现没有这个方法我们的程序就无法运行。 其实任何一个Java程序的运行入口都是这个main方法&#xff0c;也就是说&#xff0c;程序在运行的时候&#xff0c;第一个执行的方法就是main()方法&#…

main方法详解

学习Java有一段时间了&#xff0c;一直没用过博客来写写自己在学习过程中遇到的问题和学习心得&#xff0c;看到别人在诸如博客这样的社区写一些总结觉得挺好的。索性&#xff0c;今天开始自己也用起博客记录学习。一来呢&#xff0c;能更好的总结学习知识。二来&#xff0c;有…

java中main方法的作用

main方法是我们学习Java语言学习的第一个方法&#xff0c;也是每个java使用者最熟悉的方法,每个Java应用程序都必须有且仅有一个main方法。在eclipse里可以使用输入main&#xff0c;在按住Alt/的方式快速创建main方法。可以说main方法是最简单的方法&#xff0c;因为main方法几…

Java中的main()方法如何运用?

​ 在Java中&#xff0c;main()方法是Java应用程序的入口方法&#xff0c;也就是说&#xff0c;程序在运行的时候&#xff0c;第一个执行的方法就是main()方法&#xff0c;这个方法和其他的方法有很大的不同&#xff0c;比如方法的名字必须是main&#xff0c;方法必须是public …

解析java中的main方法

解析java中的main方法 1.一个java源文件(.java文件)可以有多个class类 1.1 分析 例如下面代码编译时不会报错,只不过编译后会生成多个对应的class类文件 其中有多少个类就生成class类文件 1.2 示例代码 class B{} public class Practice {public static void main(String[…

Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法

public static void main(String[] args) {}或者 public static void main(String args[]) {}main方法是我们学习Java语言学习的第一个方法&#xff0c;也是每个java使用者最熟悉的方法,每个Java应用程序都必须有且仅有一个main方法。在eclipse里可以使用输入main&#xff0c;…