IDEA导入jar包, 并在Maven中打包该jar包
- 背景
- 步骤
- IDEA导入jar包
- Maven中打包第三方jar包
背景
项目因为某些原因, 需要引入demo中代码, 但是demo使用的是 java而且没有使用任何框架, 并且还引用第三方 jar,
因此在自己项目(SpringBoot+Maven)中集成demo时. 整个集成过程中颇为麻烦,
遂将此步骤记录一下, 以防日后需要.
步骤
如果是基于Maven的项目, 可以直接跳过 IDEA导入jar包 部分, 直接进行后面部分的配置即可
- 在项目中创建jar存放目录
我的方式在项目根目录下, 创建lib目录, 存放jar
IDEA导入jar包
一开始的时候, 引用第三方jar的地方(类上面import部分)报红, 所以需要通过在idea上面配置, 使其能够正常运行demo
因此就在网上找到类似的解决方案. 步骤如下
- 进入
File-> Project Structure-> Libraries -> 点击 + 号-> 选择java
选中所选的jar包(多个时一个个添加)
- 选中jar时, 指定模块(Modules), 这里的模块指定是自己pom文件中的 artifactId
- 添加完毕之后,
Project Structure-> Modules
下面就会有我们添加的jar
如果还是没有, 我们点击+
手动添加上一步配置的库即可,
主要注意的是点击+
后选择添加的是库 Libraries , 而不是jar或者目录
确认配置好之后, 点击确定, 就发现demo可以正常运行了
Maven中打包第三方jar包
虽然可以运行了, 但是在Maven打包中遇到了问题,
虽然在idea中被添加到了模块中, 但是在打包时就无法引用第三方jar包, 如下图所示
说明在Maven中, 所引用的第三方jar并没有被打进去, 因此需要我们进行二次配置
-
在pom文件中, 添加第三方jar 的引用
<dependency> <groupId>com.time.pause</groupId> <artifactId>okhttp</artifactId> <!--依赖范围--> <scope>system</scope> <version>3.12.0</version> <!--依赖所在位置--> <systemPath>${project.basedir}/lib/okhttp-3.12.0.jar</systemPath> </dependency>
需要注意的是:
groupId,artifactId
无需和jar包中完全一致, 只需我们自定义即可. 版本我们根据实际情况添加 -
将添加的第三方jar的Maven坐标纳入到打包插件中
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--让maven编译的时候能将第三方包编入--> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin>
需要注意的是如果没有步骤2配置, 则打包时虽然不会报错了, 但是在使用
java -jar
本地运行jar时仍然会找不到包,
因为实际上第三方jar并没有被打包插件打入进去
参考博客
https://blog.csdn.net/qq_43599841/article/details/127368168
https://blog.csdn.net/weixin_43888891/article/details/130611728