Maven项目引用本地jar包

前言

正常情况下,是可以通过更改远程仓库地址是可以完成资源拉取和调用的有这么几种特殊情况需要特别处理:

1> 公司内网开发,搭建了私服云,但是又没有维护私服云

2> 其他合作公司开发的jar包,未发布maven仓库的

……

1、直接当java项目引用jar包

这时候最简单的方法是,直接通过添加Add As Library,将其加入java项目

2、Maven引用本地项目内的外置jar包

pom.xml文件中配置

<scope>system</scope>,system依赖不是由maven仓库,而是本地的jar包,因此必须配合systemPath标签来指定本地的jar包所在全路径。这类jar包默认会参与编译、测试、运行,但是不会被参与打包阶段。

<!-- 引入本地lib包 -->
<!-- 达梦数据库驱动 -->
<dependency>
    <groupId>com.dm</groupId>
    <artifactId>DmJdbcDriver</artifactId>
    <scope>system</scope>
    <version>1.8.0</version>
    <systemPath>${project.basedir}/src/lib/DmJdbcDriver18.jar</systemPath>
</dependency>

如果也想打包进去的话,需要在插件里做配置<includeSystemScope>true</includeSystemScope>

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <!-- maven打包时会将外部引入的jar包(比如在根目录下或resource文件下新加外部jar包)打包到项目jar -->
        <includeSystemScope>true</includeSystemScope>
    </configuration>
</plugin>

3、Maven 将本地jar包添加到本地仓库[可被pom文件调用]

pom.xml文件中已经存在,同时jar包也有,只是没有通过仓库获取,这时候直接install,会报获取不到该jar包。

<dependency>
    <groupId>com.dm</groupId>
    <artifactId>DmJdbcDriver</artifactId>
    <version>1.8.0</version>
</dependency>

可以通过如下命令,将jar包添加到本地maven仓库,命令如下:

jar包所在地:E:DmJdbcDriver-1.8.0.jar

mvn install:install-file -Dfile=E:DmJdbcDriver-1.8.0.jar -DgroupId=com.dm -DartifactId=DmJdbcDriver -Dversion=1.8.0 -Dpackaging=jar

打开cmd窗口,执行命令后,本地仓库对应位置自动生成对应jar包和pom文件:

注意:不能直接存放在对应的maven目录下,这让会缺失.pom文件,且报本地仓库已存在该jar包错误。

借鉴

经验分享 程序员 微信小程序 职场和发展