springboot项目的打包问题(常用)

在java的日常开发中,离不开项目的打包,怎么将项目打包,并部署到服务器,这是每一个java程序猿都需要会的知识点,我根据自己的经验写这篇文章,希望可以帮助到有需要的人。

知识铺垫:在java项目中,可以将项目打包成war 和jar这二种不同的方式。

打包成war

关于war,这是一个比较远古的打包方式,有些人可以对它的映像不深刻,这种方式几乎已经淘汰了,现在用得比较少。

war主要是配和tomcat进行使用,将项目打包成war包,然后将打包好的war上传带Tomcat服务器上的WebApp,这样子这个服务就算部署成功了,后面就可以通过ip+端口号+项目名+请求路径访问请求了。这是一种古老的方式,所以本文就不做具体演示了

打包成jar包

这是我们日常开发中常用的方式,也是springboot项目的默认打包方式。通过这种方式打包的项目是可以运行的(因为这中打包方式会将Tomcat服务器打包进行)

经典实现:

<build>

<plugins>

复制代码
          <!--  Maven编译插件(maven-compiler-plugin)-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

<!-- Spring Boot插件编译插件(maven-compiler-plugin)-->

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

<version>${spring-boot.version}</version>

<executions>

<execution>

<id>repackage</id>

<goals>

<goal>repackage</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

一般项目打包会同时使用Maven编译插件和springboot插件对项目进行打包。

Maven编译插件(maven-compiler-plugin):

作用:用于编译Java源代码。

功能:将源代码编译成字节码文件,以便后续的打包和部署。

配置项:

源码版本(source):指定要编译的Java源代码版本。

字节码版本(target):指定生成的字节码文件的兼容Java版本。

编码(encoding):指定源代码的编码方式。
Spring Boot插件(spring-boot-maven-plugin):

作用:用于构建和打包Spring Boot应用程序。

功能:将Spring Boot应用程序打包成可执行的JAR或WAR文件,以便直接运行或部署到服务器。

配置项:

打包方式(repackage):指定打包的方式,即将应用程序及其依赖项打包成可执行的JAR或WAR文件。

通过配置这两个插件,可以方便地进行Java代码的编译和Spring Boot应用程序的打包。

Maven编译插件确保源代码正确地编译成字节码文件,而Spring Boot插件则将编译后的应用程序打包成可执行的JAR或WAR文件,方便部署和运行。

通常情况下,如果你只需要简单地编译Java代码并打包成可执行的JAR或WAR文件,只配置Spring Boot插件就足够了。Spring Boot插件内部也包含了编译功能,它会自动使用Maven默认的编译插件进行编译。因此,如果你只配置了Spring Boot插件而没有配置Maven编译插件,
Spring Boot插件会自动处理编译的工作。但是,如果你有特殊的编译需求或者需要更详细的编译配置,例如设置特定的编码方式、指定源码和字节码版本等,那么你可能需要配置Maven编译插件来满足这些需求。

打包时如何跳过测试类:

直接在idea那么maven打包上面的选项中有跳过测试的选项

**使用命令:**mvn package -Dmaven.test.skip=true

到这里,对于如何打包就介绍完了,如有什么不对的地方,欢迎指出

相关推荐
SimonKing几秒前
Spring I18N 底层源码大揭秘:你的 MessageSource 到底是怎么找到配置的?
java·后端·程序员
极客先躯11 分钟前
高级java每日一道面试题-2026年04月04日-实战篇[Docker]-如何排查容器存储挂载失败的问题?
java·运维·docker·容器·高级面试
Hesionberger15 分钟前
动态规划与二分法破解最长递增子序列
java·数据结构·python·算法·leetcode
IT_陈寒21 分钟前
Vue的响应式竟然在这常见操作下失效了
前端·人工智能·后端
CodeStats27 分钟前
【Linux IO】从文件描述符到硬件中断:Linux IO 系统底层完全拆解
java·linux·开发语言·io·socket
她说彩礼65万30 分钟前
Asp.net core ContenResult
后端·asp.net
大阿明32 分钟前
C++智能指针与RAII机制精讲:彻底根治内存泄漏与野指针
java·jvm·c++
一生了无挂35 分钟前
C++面向对象核心精讲:类、对象、封装、权限与生命周期全解析
java·jvm·c++
aaPIXa62235 分钟前
C++ 用 Claude Code 的 defending-code-reference-harness:C/C++ 内存漏洞自动发现与修复 Pipeline
java·c语言·c++
她说..38 分钟前
Apache Commons Lang3 Pair 完整版实战详解
java·spring·java-ee·apache·springboot