项目研发过程中遇到的点点滴滴

66 阅读2分钟

    2024第一次在掘金发表文章,记录工作项目中遇到的问题,一起和大家探讨,分析问题,解决问题,认识更多志同道合的朋友,去畅聊这个行业。

  • 在/src/main/resources 下创建目录存储下载模板Excel文件

   场景:需要在该工程编译的JAR包打成docker镜像,然后提供接口给前端,下载模板,然后发现在docker运行中发现总是去读取文件是不行的。然后通过测试,在使用mvn clean installl生成jar包时候,在target目下下也生成了创建的目录,但是在本地打开其中的excel,发现文件已经损坏,就是用maven命令后,生成的文件已经损坏,所以代码去读取文件的时候总是读不到。

解决办法:不要再/src/main/resources下面创建目录存储模板。建议在工程目录下创建,然后存放模板,使用这种方式就不会出现将excel文件损坏情况。

  • 引入第三方JAR包

  通过maven中管理Jar包,比如第三方只给了jar包,没有再maven仓库中,需要自己去编译,然后在pom.xml中配置,也可以用本地依赖方法,

<dependency>
            <groupId>com.hope.cloud</groupId>  <!--自定义-->
            <artifactId>CCP_REST_SMS_SDK</artifactId>    <!--自定义-->
            <version>1.0.0</version> <!--自定义-->
            <scope>system</scope> <!--system,类似provided,需要显式提供依赖的jar以后,Maven就不会在Repository中查找它-->
            <systemPath>${basedir}/libs/CCP_REST_SMS_SDK-1.0.0.jar
            </systemPath> <!--项目根目录下的lib文件夹下-->
        </dependency>

转存失败,建议直接上传图片文件

这种是某些SDK没有在maven仓库提供,所以直接依赖本地。

但是用maven build的时候,需要在中添加如下代码:

<resources>
            <resource>
                <directory>${project.basedir}/libs</directory>
                <targetPath>BOOT-INF/lib/</targetPath>
                <includes>
                    <include>**/*.jar</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <targetPath>BOOT-INF/classes/</targetPath>
            </resource>
 </resources>

需要打包在BOOT_INF下,否则在调用第三方接口时候,会出现找不到的class。反正在这个地方我踩了好久的坑,特别还有就是第三方SDK不是maven工程,所有的依赖jar包都是在一个目录下这种,小心第三方中的依赖包版本是否和我们自己依赖包有冲突,特别是引用gson这种。解决包冲突可以用 dependency analyzer 插件去检查。

其实每一个开发的人,在项目中都会遇到踩过坑的问题,记录下来,自己也会收获,别人也会借鉴。如果大家在项目中遇到过其他的坑点,在下方留言,一起讨论。

初见众友心澎湃, 技术交流语声甜。 共谋发展齐努力, 美好未来在眼前。