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

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

相关推荐
独断万古他化7 分钟前
【Java 实战项目】多用户网页版聊天室:消息传输模块 —— 基于 WebSocket 实现实时通信
java·spring boot·后端·websocket·ajax·mybatis
舒一笑11 分钟前
🚀 我用一行命令,把 OSS 私有文件变成“可直接下载的公网链接”(很多人不会)
后端
yyt36304584114 分钟前
spring单例bean线程安全问题讨论
java·spring
小兔崽子去哪了24 分钟前
Docker 安装 PostgreSQL
数据库·后端·postgresql
Sweet锦25 分钟前
SpringBoot 3.5 集成 InfluxDB 1.8
spring boot·时序数据库
野犬寒鸦28 分钟前
Redis热点key问题解析与实战解决方案(附大厂实际方案讲解)
服务器·数据库·redis·后端·缓存·bootstrap
我是大猴子34 分钟前
事务失效的几种情况以及是为什么(详解)
java·开发语言
snakeshe10101 小时前
深入理解 Java 注解:从原理到实战
后端
Lucaju1 小时前
吃透 Spring AI Alibaba 多智能体|四大协同模式+完整代码
后端
Nyarlathotep01131 小时前
Redis的对象(5):有序集合对象
redis·后端