方式一:
File→Project Structure → Project Settings→Artifacts→JAR→From modules with dependencies
如下图,module选择需要打包的项目名;Main Class 选择项目的主程序类(启动类);输出目录确保是空的,如果里面有一个MANIFEST.MF文件,要先删除掉
将设置都搞定好后,就开始打包,如果初次打包按照以下流程
点击Build Artifacts后会出现下图的弹窗
如果是初次打包点击build,如果不是请点击Rebuild
最后找到输出目录即可
所有的输出文件都在out目录下,运行 java -jar xxxx.jar即可运行项目
部署:将该文件夹复制到对应的服务器上
<1>首次部署当前程序需要在对应的文件夹中执行以下命令
a.启动程序 nohup java -jar demo01.jar &
b.退出 ctrl + c
c.查看日志 tail -500f nohup.out
<2>非首次部署当前程序需要在对应的文件夹中执行以下命令
a.捕获上一个版本程序的进程 ps - ef|grep demo01.jar
b.杀死对应的进程 kill 进程号
c.启动程序 nohup java -jar demo01.jar &
d.退出 ctrl + c
e.查看日志 tail -500f nohup.out
方式二:
- 在pom.xml文件中定义启动类的名称
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.l.Application</mainClass> <!--此处为启动类的全限定类名-->
</configuration>
</plugin>
</plugins>
</build>
- 定义Spring Boot启动类
@SpringBootApplication//声明当前应用程序是一个SpringBoot应用程序
@MapperScan("com.l.mapper")//配置mapper接口扫描包
public class Application extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(Application.class,args); //运行启动类
}
//为了打包springboot项目
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(this.getClass());
}
}
主要就是继承SpringBootServletInitializer 和重写 configure方法;
- 然后到项目的pom平级的目录下面,使用mvn clean package 命令打包成jar;
- 然后再到 target的目录下面执行 java -jar xxx.jar;
方式三:(此方法启动类不需要继承SpringBootServletInitializer)
打包方式用的是spring-boot-maven-plugin插件打包。
第一步:在pom.xml加入springboot的打包插件配置
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
第2步:必须先编译,不然找包后报找不到类,先使用maven编译整个项目,用idea的同学可以点maven compile编译。操作如下图:
使用外部maven的同学执行 mvn compile.看最后是否success。
第3步: 执行命令
mvn package spring-boot:repackage
这个命令能将spring-boot打包为jar,并将依赖打进去,就可以放到其他地方执行,mvn
package这种打包是没有依赖的,放在别的环境就不能运行了。
这样就打包完成了,打成的jar在target目录下。如下图: