区别在于 后端多模块项目部署
docker 正常安装
主要是后端jar 的打包不太一样
1.后端项目打包
后端项目使用maven打包
打包后在target目录下生成对应模块的jar包
打包出现的问题:我在打包完成后查看jar包,发现只有16kb,然后试在本地运行jar包测试,果然有错误,报错信息是:xxxxx-0.0.1-SNAPSHOT.jar中没有主清单属性
,原因是不能找到程序的主类,需要修改父pom文件和子模块sangeng-blog的pom文件和子模块sangeng-admin的pom文件,修改如下:
1.11解决打包问题
这是要使用的SpringBoot版本要在2.6以上,我的为2.6.11
①blog pom
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
</plugin>
<!-- 此插件必须放在父 POM 中 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.3.0</version>
<executions>
<!--
执行本插件的方法为,在主目录下执行如下命令:
mvn package assembly:single
对于 IntelliJ IDEA,生成的 JAR 包位于每个模块下的文件夹 target
-->
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<!-- 此处 IntelliJ IDEA 可能会报红,这是正常现象 -->
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<!-- 配置程序运行入口所在的类 -->
<mainClass>com.zhang.BlogApplication</mainClass>
</manifest>
<manifest>
<!-- 配置程序运行入口所在的类 -->
<mainClass>com.zhang.BlogAdminApplication</mainClass>
</manifest>
</archive>
<!-- 设置 JAR 包输出目录 -->
<outputDirectory>${project.build.directory}/#maven-assembly-plugin</outputDirectory>
<!-- 设置打包后的 JAR 包的目录结构为默认 -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
②子模块sangeng-blog和子模块sangeng-admin的pom文件
<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>
<finalName>${project.artifactId}</finalName>
</build>
问题:
解决SpringBoot2.6的循环依赖
在子模块sangeng-blog和子模块sangeng-admin的application.yml文件中Spring后加
main: allow-circular-references: true
解决SpringBoot2.6与swagger2的版本冲突问题
在子模块sangeng-blog和子模块sangeng-admin的application.yml文件中Spring后加
mvc: pathmatch: matching-strategy: ANT_PATH_MATCHER
(如果还是不起作用,识别不出来语言 看看有没有黄,换个位置写)
------------------------------------------打包完成-------------------------------------------------
直接在父pom下clean清除先前的jar包,再packagel打包就好.
打包好了后,子模块blog-vue,和blog-admin 的jar 可以单独执行
进入target目录下,在文件搜索框输入cmd进入Dos窗口,使用命令运行jar包
java -jar jar包
知识点补充: docker 一小时入门
https://www.yuque.com/wukong-zorrm/xwas40/