场景:
每次打成的jar包动不动就50M以上, 服务器部署上传很是费劲
解决方法:
- 项目的pom.xml中的<build>标签-<plugins>中增加两个<plugin>
- 第一个<plugin>: 目的是打成的jar包不含maven依赖
- 第二个<plugin>: 目的是项目的maven依赖单独存在<outputDirectory>配置的路径下
- 平常不修改pom.xml依赖时, 不需要lib重新打包的话, 就把第二个<plugin>部分注释掉, 会节省打包时间
- 完整<build>: 其中的
${project.build.directory}
:编译输出目录,默认为 target/
<build>
<finalName>你想要的jar包名称</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId>
<artifactId>nothing</artifactId>
</include>
</includes>
</configuration>
</plugin>
<!-- 拷贝依赖jar包到target/lib -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals><goal>copy-dependencies</goal></goals>
<configuration>
<type>jar</type>
<includeTypes>jar</includeTypes>
<includeScope>runtime</includeScope>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
- 配置打包效果展示: 仅仅1M多, 真的爽...
部署到linux服务器:
- 上传 lib包和jar包 到服务器
- cd 到你的目录
- kill掉以前的服务进程(kill太粗暴, 可以自行了解springboot的优雅停止服务)
- 运行: nohup java -Dloader.path="lib/" -jar oaServer.jar &
- -Dloader.path="lib/"表示引用依赖的路径, &后台运行