编译打包
1、在pom.xml中配置打包所需的Maven插件
<!--打成jar包 -->
<packaging>jar</packaging>
<build>
<!--打成jar包的名称-->
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.2.3</version>
</plugin>
<plugin>
<!--排除测试类对打包的干扰-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
2、在命令行执行mvn package
package
将会编译代码,并打包,最终按照maven规定的packaging方式打包,最终输出到目标目录中。
# 执行mvn clean,移除之前的target目录
mvn clean
# 切换到项目路径下,执行mvn package指令
mvn package
最终在target
目录下生成了jar包,进入target目录会发现存在两个文件:demo.jar 和 demo.jar…original.
.jar:可执行的jar包,包含已编译的类以及运行所需要的所有jar依赖。
可以通过:jar tvf target/demo.jar 查看里面都包含什么
.jar.original比前者小的多,这是Maven在Spring Boot进行repackage之前创建的原始jar文件,通过上面的命令,可以看到里面没有运行需要的依赖,只包含我们定义的类编译后的.class文件。
部署到linux服务器
1、在linux服务器上安装java
下载地址:https://www.oracle.com/cn/java/technologies/downloads/
2、运行jar包
将demo.jar上传到服务器,并在服务器上执行jar包;
nohup java -jar demo.jar > /dev/null 2>&1 &
其中,demo.jar是您要启动的JAR文件的名称。
这个命令中的nohup
表示不挂断地运行命令,执行后会返回程序进程的PID,> /dev/null 2>&1
表示将标准输出和标准错误输出重定向到/dev/null,以防止输出被打印到终端上。最后的&
表示将命令放入后台运行。