最近项目要做一个Minio分块上传的功能,做好之后其他项目也想直接复用这个功能,参考了一些资料,总结如下。
1. 不能使用springboot默认的打包方式,所以我们需要把pom文件里面的这个换成Apache-maven:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source> <!--指明源码用的Jdk版本-->
<target>1.8</target> <!--指明打包后的Jdk版本-->
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<!--打包时需要被排除的文件-->
<exclude>application.yml</exclude>
</excludes>
</resource>
</resources>
</build>
2. 剔除要引入的springboot项目中不需要的文件:如Application和ApplicationTests等。
3. 打包时要剔除application.yml等文件
4. 打包后自动配置(Spring发现)原有的bean的解决方案,有好几种解决方案,这里提供一种,具体原理可参考文末参考文档。这里只做如何实现。
项目目录如下,编写一个配置类用于指定需要扫描的beans有哪些
再编写对应的注解用于启用该配置类,之后就可以再需要使用该jar包的springboot项目中通过该注解实现自动装配了。
先clean 之后 点击 package 即可生成如下的jar包
在新项目中导入该jar包即可使用
在新项目的启动类上加上@EnableMinioUpload 注解 即可实现 该Jar包的自动装配
对于该jar包的application.yml文件 在打包时被我们排除在外了,此时可直接在新项目的application.yml中配置该jar包的资源信息