maven项目在pom.xml中引入jar包使用记录

本文记录 在一次开发中 偶然需要用到阿里的一个jar包,但是又无法实现从中央仓库下载到本地仓库使用,所以在网上下载下来jar包,放到项目中,在pom.xml中引用

首先在项目中新建一个lib的文件夹用来存放jar包
然后在pom.xml中添加一下代码:

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>http-sdk</artifactId>
	<scope>system</scope>
	<systemPath>${project.basedir}/lib/http-sdk-1.1.4.0.jar</systemPath>
	<version>1.1.4.0</version>
</dependency>

其中${project.basedir}一定要写,不然会出现“在windows”下可以正常编译,在Linux服务器上就“有可能”出现编译找不到jar包的错误。

标签介绍:
groupId 是(Maven)项目的唯一标识。Group ID必须满足 Java包名规范 ,这意味着是形如:org.apache.mavenorg.apache.commons的格式。

artifactId 是不带版本号的jar的名字,唯一要求是使用小写字母,且没有特殊符号。

groupIdartifactId被统称为"坐标"是为了保证项目唯一性而提出的;

version 如果要发布,可以选择典型的数字和点号组成的版本号(1.0,1.1,1.0.1…)不要使用日期,因为它们通常和SNAPSHOT版本号联系在一起。如果是一个第三方的artifact,你必须使用它提供的版本号,无论这些版本号看起来多么奇怪,比如:2.0,2.0.1,1.3.1

scope 是用来限制 dependency 的作用范围的,影响 maven 项目在各个生命周期时导入的 package 的状态,主要管理依赖的部署。

scope 的作用范围:

  1. compile:默认值,适用于所有阶段(表明该 jar 包在编译、运行以及测试中路径均可见),并且会随着项目一起发布。
  2. compile:默认值,适用于所有阶段(表明该 jar 包在编译、运行以及测试中路径均可见),并且会随着项目一起发布。
  3. runtime:无需参与项目的编译,不过后期的测试和运行周期需要其参与,与 compile 相比,跳过了编译。如 JDBC 驱动,适用运行和测试阶段。
  4. provided:编译和测试时有效,但是该依赖在运行时由服务器提供,并且打包时也不会被包含进去。如 servlet-api。
  5. system:类似 provided,需要显式提供包含依赖的jar,不会从 maven 仓库下载,而是从本地文件系统获取,需要添加 systemPath 的属性来定义路径。

systempath
当maven依赖本地而非repository中的jar包,sytemPath用来指明本地jar包路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值