在写本文的时候先来说明一下maven依赖的各种范围的意思

compile(编译范围)
       compile 是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。
provided(已提供范围)
       provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web 应用,你可能在编译classpath 中需要可用的ServletAPI 来编译一个servlet,但是你不会想要在打包好的WAR中包含这个ServletAPI;这个Servlet API JAR 由你的应用服务器或者servlet 容器提供。已提供范围的依赖在编译classpath(不是运行时)可用。它们不是传递性的,也不会被打包。
runtime(运行时范围)
       runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实现。
test(测试范围)
       test 范围依赖在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。测试范围依赖在之前的???中介绍过。
system(系统范围)
       system 范围依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR 文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven 也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用依赖)。

下面来介绍maven添加本地依赖(这几个是jre/lib/ext下的jar包,在classpath下是没有的)

  1. <dependency>
  2. <groupId>dnsns</groupId>
  3. <artifactId>dnsns</artifactId>
  4. <version>1.0</version>
  5. <scope>system</scope>
  6. <systemPath>${project.basedir}/src/lib/dnsns.jar</systemPath>
  7. </dependency>
  8. <dependency>
  9. <groupId>localedata</groupId>
  10. <artifactId>localedata</artifactId>
  11. <version>1.0</version>
  12. <scope>system</scope>
  13. <systemPath>${project.basedir}/src/lib/localedata.jar</systemPath>
  14. </dependency>
  15. <dependency>
  16. <groupId>sunjce_provider</groupId>
  17. <artifactId>sunjce_provider</artifactId>
  18. <version>1.0</version>
  19. <scope>system</scope>
  20. <systemPath>${project.basedir}/src/lib/sunjce_provider.jar</systemPath>
  21. </dependency>
  22. <dependency>
  23. <groupId>sunpkcs11</groupId>
  24. <artifactId>sunpkcs11</artifactId>
  25. <version>1.0</version>
  26. <scope>system</scope>
  27. <systemPath>${project.basedir}/src/lib/sunpkcs11.jar</systemPath>
  28. </dependency>

我把他们放在工程下的src/lib下面 所以是

  1. ${project.basedir}/src/lib/sunpkcs11.jar

当然我们也可以规定自己的路径来实现依赖的引用

Maven添加本地依赖的更多相关文章

  1. maven添加本地依赖包方法

    1.某些情况下不方便上传本地依赖包到Maven repository,可以通过下面方法添加本地依赖包. 2.方法 1).pom.xml中添加以下代码块 <dependency> <g ...

  2. maven添加本地jar到本地库中

    maven添加本地jar到本地库中(用于远端地址下载不了的情况) 在dos命令行执行以下命令将会吧ojdbc14-10.2.0.4.0.jar添加到本地库中(ps:必须已经安装了,maven,并配置了 ...

  3. maven添加本地jar包

    今天遇到一个mavan仓库中没有的jar包, 故只能添加本地jar包, 花了不少时间找资料,终于OK.故在此记录. 1. 第一次,在网上看到说可以用<systemPath> 解决, 如下: ...

  4. Maven 配置本地依赖jar

    现有json-1.0.jar,引入依赖方法如下: 1.  在项目下新建 lib 目录,复制json-1.0.jar到lib目录下 pom.xml中添加配置 <dependency> < ...

  5. maven添加本地jar包依赖

    1.  在java工程下新建文件夹,如repo/allin/allin-util/0.1 然后jar包扔进去,如下图: 2. 修改pom.xml文件,增加以下 <repositories> ...

  6. maven添加本地jar

    maven有时需要添加了一些本地jar,记录下流程 1.在项目名下创建一个文件夹,起名为lib吧,放要的jar放进去 2.然后打开jar在的路径,打开命令窗口,执行 mvn install:insta ...

  7. maven添加本地非repository中的jar包

    1.今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入.  ...

  8. maven添加oracle依赖失败

    由于Oracle授权问题,Maven3不提供oracle JDBC driver 可以到maven中央仓库去下载依赖,网址:http://repo.spring.io/plugins-release/ ...

  9. maven添加本地jar包到本地仓库

    1 进入jar包所在文件夹,进入cmd命令 2 执行命令 mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -Dartif ...

随机推荐

  1. JAVA通过信号量避免死锁

    死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放.由于线程被无限期地阻塞,因此程序不可能正常终止. 导致死锁的根源在于不适当地运用"synchronized ...

  2. Oracle 11g client 安装

    本文所有红色字体标注的为本人计算机安装方法(Oracle 11g安装在本地 Oracle 11g client 也是安装在本地 如果情况一致 可参照本人方法安装) Oracle 11g client ...

  3. DOM学习笔记(三)DOM元素的访问、修改与事件

    访问 HTML 元素等同于访问节点,使用的是document对象下的数个getElement方法,然后再对返回的元素(或元素列表)进行具体内容的访问和修改,或者响应对应的事件是操作 一些 DOM 对象 ...

  4. Angular6在自定义指令中使用@HostBingDing() 和@HostListener()

    emmm,,,最近在为项目的第二阶段铺路,偶然看到directive,想想看因为项目已经高度集成了第三方组件,所以对于自定义指令方面的经验自己实在知之甚少,后面经过阅读相关资料,总结一篇关于在自定义指 ...

  5. sql #与$的区别

    #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by “111”, 如果传入的值是i ...

  6. RXSwift01

    //创建 Observable 序列 func createObservable(){ /* let observable = Observable<Int>.just(5) let ob ...

  7. swift4.0 方法监听Selector写法总结

    import UIKit class MainViewController: UITabBarController { //MARK:属性 懒加载 lazy var composeBtn = UIBu ...

  8. ObjectARX反应器概述[转载]

    何为反应器? AutoCAD中提供了类似MFC消息机制的通知方式.用于处理以下情况: 执行AutoCAD命令.修改系统变量.保存和退出图形编辑器或者切换当前工作布局空间等等. 反应器机制是观察者模式的 ...

  9. 多线程 NSThread 了解

    用NSThread创建子线程的3种方法   //  DYFViewController.m //  623-02-pthread // //  Created by dyf on 14-6-23. / ...

  10. 笔记-JavaWeb学习之旅8

    Window对象-定时器方法 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...