问题:
springboot单体项目打包上线,体积大,在特定公网下,传输速度较慢。采用分离打包,并分离配置文件,减缓以上问题。
步骤:
1. pom中导入maneb插件,并修改相关内容,打包
2. 在服务器上原始jar包目录下创建相应的config目录,确保lib config,jar包在同一个目录下
3. 阿里云开放端口
具体步骤
1. pom中导入以下内容,注意修改主函数坐标-指定入口类,右键入口类copy path去掉.java
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!-- MANIFEST.MF 中 Class-Path 加入前缀 -->
<classpathPrefix>lib/</classpathPrefix>
<!-- jar包不包含唯一版本标识 -->
<useUniqueVersions>false</useUniqueVersions>
<!-- 指定入口类 -->
<mainClass>edu/platform/PlatformApplication</mainClass>
</manifest>
</archive>
<outputDirectory>${project.build.directory}</outputDirectory>
</configuration>
</plugin>
<!-- 拷贝依赖 -->
<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>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
获得如下结构
2.将上面的lib 和 jar放在服务器你想部署的目录下并创建一个空的文件夹config
打开你的jar包,复制里面配置文件到服务器上的config目录下:
3.执行命令后台启动项目
# nohup -后台启动
# --spring.config.location=xxx 使用指定配置目录中的配置
# >xxx.txt & 将控制台输出日志至指定目录文件
nohup java -jar /home/project/xxx.jar --spring.config.location=/home/project/config/ >/home/project/log.txt &
spring中默认配置文件使用是有优先级的,优先级最高的也就是默认使用在jar同一级config中的配置文件
nohup java -jar /home/project/xxx.jar >/home/project/xxx.txt &
4.最后开放阿里云端口即可