关于maven中引入本地jar方式

关于maven中引入本地jar方式

通常,项目的模块之间,会使用maven打成jar到本地仓库或项目仓库,然后各个模块再进行引用,但在一些特殊情况,模块直接引入本地系统jar包.

1 maven的引入简介

以junit测试jar包为例:

        <!--导入junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

通常pom.xml文件中,引入的jar使用三个基本元素来定义:

元素名称说明
groupId对应仓库中一级或多级目录
artifactId对应仓库中一级目录
version对应仓库中一级目录
  • groupId:表示一个公司,组织,团体反过来的域名
  • artifactId:表示项目名或模块名
  • version:每个版本号

scope表示jar包依赖范围

Maven在执行过程中,有三种不同的classpath,运行Java代码时,使用不同的classpath类路径下的jar包执行.

classpath范围理解为
编译类路径程序在编译的时候使用的类路径,理解为main目录下的java代码可用
测试类路径程序在测试的时候使用的类路径,理解为test目录下的java代码可用
运行时类路径程序在执行过程中使用的类路径,理解为target目录下的字节码可用

scope标签指定jar的依赖范围,从上面三种类路径中的一种或多种选取, 默认为三种都可以使用,即compile类型.

依赖范围编译类路径测试类路径运行时类路径
compileYYY
providedYY-
runtime-YY
test-Y-
systemYY-

说明:

  • compile 表示jar包在项目的编译,测试,运行都需要依赖,即项目打包,需要带上.
  • provided 表示jar包在编译,测试时,需要使用,在运行时,由其他的容器来提供.项目打包时,可以不带上.
  • runtime 表示jar包在测试,运行时需要使用.不需要进行编译,可以直接使用.
  • test 表示jar包只在测试阶段使用,如单元测试junit包
  • system和provided的使用相同,但是system类型不会从maven仓库中获取,而是从项目本地文件中获取,所以要配合systemPath一起使用,否则会报错.(systemPath表示本地系统路径)

system使用案例:

<dependency>
    <groupId>com.cf</groupId>
    <artifactId>demo-provide</artifactId>
    <version>1.1</version>
    <scope>system</scope>
    <systemPath>${basedir}/src/main/resources/lib/demo-provide-1.1.jar</systemPath>
</dependency>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值