Springboot 打包注意问题
程序员文章站
2022-07-12 19:16:59
...
注意点1:如果有本地包,需要在 pom.xml 文件中做特殊处理,否则,最后的包中不包含 本地导入的 jar 包。如:在项目中引用 lib 下的 jar 包(lucene 分词),在idea 中能够正常运行使用,但通过 maven 打包后,会发现报错,缺少该 jar 包中的 类。
解决:在 pom.xml 文件中,添加一下代码:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork><!-- 如果没有该配置,热部署的devtools不生效 -->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>${project.basedir}/src/lib</directory>
<targetPath>BOOT-INF/lib</targetPath>
<!--<filtering>false</filtering>-->
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<targetPath>BOOT-INF/classes/</targetPath>
</resource>
</webResources>
</configuration>
<version>2.1.1</version>
</plugin>
</plugins>
</build>
注意点2:通过 maven 打包时,默认会进行测试(如链接数据库、访问本地文件夹等),但往生产环境部署时,通常要先将配置 信息改为生产环境的,这时有可能会执行报错(如开发数据库和生产数据库分别在内外网、文件路径开发环境是 Windows 生产环境是 Linux)
解决:需要在 pom.xml 文件中添加如下代码:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<!--true跳过测试-->
<skipTests>true</skipTests>
</configuration>
</plugin>
上一篇: Vue学习--Axios异步通信
下一篇: springboot打包问题