在平时我们做项目中,需要用到jar包文件,有时候是不能从maven远程仓库拉取的,这时候就得考虑用到jar文件安装到本地maven库中,再添加依赖,今天小编分步骤给大家介绍下SpringBoot 添加本地 jar 文件的流程,一起看看吧
前言
有时候我们在项目中,会用到一些本地 jar 包文件,比如隔壁公司自己打包的;
此时无法从maven远程仓库拉取;
那么我们可以考虑把 jar 文件安装到本地 maven 库中,然后再添加依赖。
步骤
- 添加 jar 文件到项目中
在 resources 目录中创建一个 lib 目录,将本地 jar 放进去,如下所示的
foyue-common-3.2.0.jar
- 安装 jar 包到 maven 本地仓库
这里我们可以利用 maven-install-plugin 插件来安装, pom.xml如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>install-foyue-common-3.2.0.jar-jar</id>
<!-- 阶段:设定在 mvn clean 时执行安装,如果设定为 validate,那么就是在 mvn validate 时才安装 -->
<phase>clean</phase>
<configuration>
<!-- 路径:这就是刚才添加的 jar 路径 -->
<file>${project.basedir}/src/main/resources/lib/foyue-common-3.2.0.jar</file>
<!-- 属性:下面的这三个属性,就是后面我们添加依赖时的值 -->
<groupId>com.foyue</groupId>
<artifactId>foyue-common</artifactId>
<version>3.2.0</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
</configuration>
<goals>
<!-- 目标:安装外部的 jar 文件到 maven 本地仓库 -->
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
运行
mvn clean
后,会打印如下日志:
"C:\Program Files\Java\jdk1.8.0_321\bin\java.exe" -Dmaven.multiModuleProjectDirectory=D:\ruoyi\RuoYi-Vue-Oracle -Dmaven.home=C:\apache-maven-3.6.3 -Dclassworlds.conf=C:\apache-maven-3.6.3\bin\m2.conf "-Dmaven.ext.class.path=C:\Program Files\JetBrains\IntelliJ IDEA 2020.1\plugins\maven\lib\maven-event-listener.jar" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.1\lib\idea_rt.jar=2054:C:\Program Files\JetBrains\IntelliJ IDEA 2020.1\bin" -Dfile.encoding=UTF-8 -classpath C:\apache-maven-3.6.3\boot\plexus-classworlds-2.6.0.jar;C:\apache-maven-3.6.3\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version2020.1 -s C:\apache-maven-3.6.3\conf\settings.xml -DskipTests=true clean
[INFO] Scanning for projects...
[INFO]
[INFO] --------------------------< com.ruoyi:ruoyi >---------------------------
[INFO] Building ruoyi 3.8.3
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:3.1.0:clean (default-clean) @ ruoyi ---
[INFO]
[INFO] --- maven-install-plugin:2.5.2:install-file (install-foyue-common-3.2.0.jar-jar) @ ruoyi ---
[INFO] Installing D:\ruoyi\RuoYi-Vue-Oracle\src\main\resources\lib\foyue-common-3.2.0.jar to C:\Users\Heaven\.m2\repository\com\foyue\foyue-common\3.2.0\foyue-common-3.2.0.jar
[INFO] Installing C:\Users\Heaven\AppData\Local\Temp\mvninstall3878861988301601324.pom to C:\Users\Heaven\.m2\repository\com\foyue\foyue-common\3.2.0\foyue-common-3.2.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.659 s
[INFO] Finished at: 2022-08-25T15:07:51+08:00
[INFO] ------------------------------------------------------------------------
重点是这一行:
[INFO] Installing D:\ruoyi\RuoYi-Vue-Oracle\src\main\resources\lib\foyue-common-3.2.0.jar to C:\Users\Heaven\.m2\repository\com\foyue\foyue-common\3.2.0\foyue-common-3.2.0.jar
可以看到,将我们本地的 foyue-common-3.2.0.jar 安装到了 maven 本地仓库中。
- 添加依赖
<dependency>
<groupId>com.foyue</groupId>
<artifactId>foyue-common</artifactId>
<version>3.2.0</version>
</dependency>
此时程序就可以正常使用 foyue-common-3.2.0.jar 包了,而且 maven 打包也会把 foyue-common-3.2.0.jar 打包进去。
二、第二种方式:
1.导入第三方jar文件有两种方式
第一种方式
按照这个流程走下去
File → Project Structure → Project Settings → Libraries → Java → Dependencies → Export → + → JARs or directories…
选择文件导入后在lib下就会多出我们导入的jar
完成后,在项目路径 External Libraries下可看到补充的 JAR包
第二种方式
File → Project Structure → Project Settings → Modules → 项目 → Dependencies → Export → + → JARs or directories…
完成后,在项目路径 External Libraries下可看到补充的 JAR包
上面两种方式打包的时候如报找不到第三方jar包的错误,则需设置如下
maven打包过程用的是maven-compiler-plugin插件进行编译,但是由于项目中存在第三方jar包,maven-compiler-plugin无法获知第三方jar包的位置,因此报错“程序包xxx不存在”,解决方法:
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<compilerArguments>
<extdirs>${project.basedir}/src/main/resources/lib</extdirs>
</compilerArguments>
</configuration>
注意: 即使项目是按照maven标准目录结构来构建,即第三方jar包放在
src/main/webapp/WEB-INF/lib
中,maven-compiler-plugin仍然不会自动去寻找第三方jar包,仍然需要手动配置 < extdirs>
版权归原作者 Magicflowersbloom 所有, 如有侵权,请联系我们删除。