SpringBoot:SpringBoot引入外部依赖包并打包的解决方式
由于项目需求,需要引用外部依赖jar包,并打进生成的项目jar包内。
新建libs文件夹
pom中加入如下配置:
<dependency> <!-- 随便写!! --> <groupId>com.aliyun</groupId> <!-- 随便写!! --> <artifactId>aliyun-java-sdk-core</artifactId> <!-- 随便写!! --> <version>3.2.2</version> <scope>system</scope> <!-- 重点!! 使用pom.basedir 不要用project.basedir!!否则会报错!! --> <!-- project.basedir : project.basedir 就是当前项目根目录 --> <!-- pom.basedir : pom.basedir指的是pom.xml文件所在的目录, 也是项目根目录--> <systemPath>${pom.basedir}/libs/aliyun-java-sdk-core-3.3.1.jar</systemPath> </dependency>
通过Maven导入外部jar包:
scope:配置的参数作用是 system:被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径.
systemPath:配置的作用是标注外部jar包的位置路径,
其他的配置都可以随便写。
配置外部jar包一并打包进项目jar包
pom中加入如下配置:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!-- 代表maven打包时会将外部引入的jar包,打包到项目jar内 --> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> <resources> <resource> <!-- directory 表示取该目录下的文件 --> <directory>libs</directory> <!--targetPath 指定打包到哪个目录下 默认是放到class目录下--> <targetPath>/BOOT-INF/lib/</targetPath> <!-- 取符合格式的所有文件 *代表全部 --> <includes> <include>**/*.jar</include> </includes> </resource> <!-- 打包jar时解开下方的注释,如果是编译器运行项目时注释掉下方配置,
因为编译器运行项目时,项目会读取外部依赖包的配置文件,
项目本身的配置文件读不到 --> <!--<resource> 把src/main/resources下的所有配置文件加载到打包后的BOOT-INF/classes文件中 <directory>src/main/resources</directory> <targetPath>BOOT-INF/classes</targetPath> </resource>--> </resources> </build>
重要配置includeSystemScope参数,打包所有引用jar包。
-----------------------------------
作者:怒吼的萝卜
链接:http://www.cnblogs.com/nhdlb/
-----------------------------------