实际开发中,虽然大多数的jar包都可以使用maven管理,但是总会遇到一些特殊的jar包没有存储到maven库中。此时就需要我们学会如何用maven安装和引用本地jar包。本文以 java-sdk-core-2.0.1.jar 文件为例,讲一下maven如何安装本地jar包。
一般分为两种方式:
1、将jar包打入maven仓库,再通过pom引入jar
2、本地pom中引入
1、将jar包打入maven仓库,再通过pom引入jar
mvn命令参数说明
-Dfile=需要导入的jar包所放的位置
-DgroupId=导入到本地仓库jar包的父级目录
-DartifactId=jar包文件夹的名称
-Dversion=版本号
–-settings=是maven的setting.xml配置文件,会把jar包打包到xml文件中配置的本地仓库,未配置会打包到默认的本地仓库中(可以在idea的maven配置中找到该路径,配置文件中指定了maven仓库目录;如果路径中包含空格,则需要将文件全路径用引号引起来)
1)第一步,cmd命令行进入jar包所在的目录,执行命令后,本地仓库对应位置自动生成对应jar包和pom文件。执行如下命令:
// linux:
mvn install:install-file -Dfile=java-sdk-core-2.0.1.jar -DgroupId=com.huawei.apigateway -DartifactId=java-sdk-core -Dversion=2.0.1 -Dpackaging=jar
// windows:
mvn install:install-file "-Dfile=java-sdk-core-2.0.1.jar" "-DgroupId=com.huawei.apigateway" "-DartifactId=java-sdk-core" "-Dversion=2.0.1" "-Dpackaging=jar"
或者,通过idea执行命令
2)第二步,项目里面直接配置依赖
<dependency>
<groupId>com.huawei.apigateway</groupId>
<artifactId>java-sdk-core</artifactId>
<version>2.0.1</version>
</dependency>
这里注意一下,命令行里面的 DgroupId 选项对应配置文件中的 groupId;命令行里面的 DartifactId 选项对应配置文件的 artifactId;命令行里面的 Dversion 选项对应配置文件的 version。
3)第三步,更新项目,并重新编译项目。可以执行 mvn clean compile 命令重新编译整个项目。
2、本地pom引入
1)这时候最简单的方法是,直接在project structure通过添加Add As Library,将其加入java项目
2)system,system依赖不是由maven仓库,而是本地的jar包,因此必须配合systemPath标签来指定本地的jar包所在全路径。这类jar包默认会参与编译、测试、运行,但是不会被参与打包阶段。
<!-- 引入本地lib包 -->
<dependency>
<systemPath>${project.basedir}/libs/java-sdk-core-3.2.4.jar</systemPath>
<groupId>com.huawei.apigateway</groupId>
<artifactId>java-sdk-core</artifactId>
<version>3.2.4</version>
<scope>system</scope>
</dependency>
如果也想打包进去的话,需要在插件里做配置true
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- maven打包时会将外部引入的jar包(比如在根目录下或resource文件下新加外部jar包)打包到项目jar -->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>