在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
到这里,对于如何打包就介绍完了,如有什么不对的地方,欢迎指出