总结下这两天打包发布和服务器部分的一些问题
- springBoot使用maven聚合工程,有多个模块,打成jar包会稍微麻烦一点
首先在父类的pom.xml文件中,替换原来的Build,将所有子模快的所有Build删除。
<!--build内容也需要做替换,因为默认的spring-boot-maven-plugin这种方式,等到后期打包的时候他会一直提示你,你引入的依赖不存在!-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<skipTests>true</skipTests> <!--默认关掉单元测试 -->
</configuration>
</plugin>
</plugins>
</build>
然后再模块的启动类所在的pom.xml文件中声明Main class 指定启动类入口。
注意:
如果同个聚合工程种有两个启动入口,都需在启动类所在的pom.xml文件中指定启动类入口
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.mtnz.njk.NjkApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
然后我们使用IDEA把项目打成JAR包
出现以下数据表示打包成功
此时可以在我们的启动模块下target文件夹下找到打成的jar包
可以用命令到文件夹下启动jar文件
java -jar xxx.jar(文件名)
也可以在idea中直接右键启动
我在打包时还遇到个问题下面给大家说下问题
没打包的时候这个地方是可以访问到的,打包后执行jar包然后调用接口。报错找不到路径
原因在于我在mybatis中扫描的mapper文件名为小写,但是在项目中resources下的mapper文件夹名称为Mapper
(此问题项目在编译器中启动,mapper.xml可以正常访问,但是打成jar以后找不到xml,需要改文件夹名称为mapper才可找到,需要注意)
将项目打成jar包以后要将项目放到服务器中,我使用了nginx反向代理
要学习的只要如何配置nginx.conf
在这里我还是使用了以前的域名,只是又新建了几个路径以区别我新放上去的项目
这样在服务器中使用名称窗口使用java -jar命令启动项目访问
appManager区分访问的是9997端口的项目
app区分访问的是9998端口的项目
这里需要注意一个问题
在项目的配置文件中要配置符合nginx代理的路径