>>分享流行的Java框架以及开源软件,对孙卫琴的《精通Spring》、《Spring Cloud Alibaba微服务开发零基础入门到实操》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 28888 个阅读者 刷新本主题
 * 贴子主题:  Maven-外部依赖 回复文章 点赞(0)  收藏  
作者:Jacky    发表时间:2018-11-14 22:39:45     消息  查看  搜索  好友  邮件  复制  引用

Maven - 外部依赖
现在,如你所知道的,Maven的依赖管理使用的是 Maven - 仓库 的概念。但是如果在远程仓库和中央仓库中,依赖不能被满足,如何解决呢? Maven 使用外部依赖的概念来解决这个问题。

例如,让我们对在 Maven - 创建工程 部分创建的项目做以下修改:

在 src 文件夹下添加 lib 文件夹
复制任何 jar 文件到 lib 文件夹下。我们使用的是 ldapjdk.jar ,它是为 LDAP 操作的一个帮助库
现在,我们的工程结构应该像下图一样:

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

现在你有了自己的工程库(library),通常情况下它会包含一些任何仓库无法使用,并且 maven 也无法下载的 jar 文件。如果你的代码正在使用这个库,那么 Maven 的构建过程将会失败,因为在编译阶段它不能下载或者引用这个库。

为了处理这种情况,让我们用以下方式,将这个外部依赖添加到 maven pom.xml 中。

    <project xmlns="http://maven.apache.org/POM/4.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
       http://maven.apache.org/maven-v4_0_0.xsd">
       <modelVersion>4.0.0</modelVersion>
       <groupId>com.companyname.bank</groupId>
       <artifactId>consumerBanking</artifactId>
       <packaging>jar</packaging>
       <version>1.0-SNAPSHOT</version>
       <name>consumerBanking</name>
       <url>http://maven.apache.org</url>

       <dependencies>
          <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>3.8.1</version>
             <scope>test</scope>
          </dependency>

          <dependency>
             <groupId>ldapjdk</groupId>
             <artifactId>ldapjdk</artifactId>
             <scope>system</scope>
             <version>1.0</version>
             <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
          </dependency>
       </dependencies>

    </project>
上例中, <dependencies> 的第二个 <dependency> 元素 , 阐明了外部依赖的关键概念。

外部依赖(library jar location)能够像其他依赖一样在 pom.xml 中配置。
指定 groupId 为 library 的名称。
指定 artifactId 为 library 的名称。
指定作用域(scope)为系统。
指定相对于工程位置的系统路径。
希望现在你懂得了有关外部依赖的知识,你将能够在你的 Maven 工程中指定外部依赖。




程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->类的生命周期
  JavaWeb开发-->使用Session(Ⅱ)
  JSP与Hibernate开发-->数据库事务的概念和声明
  Java网络编程-->客户端协议处理框架
  精通Spring-->虚拟DOM和render()函数
  Vue3开发-->创建综合购物网站应用
  Redis为什么单线程能够支持高并发
  Rust学习笔记 | 异步代码的几种写法
  如何编写优雅的Spring架构API
  阿里巴巴为什么能抗住90秒100亿?看完这篇你就明白了!
  使用Spring MVC统一异常处理实战
  回字有四种写法,那你知道单例有五种写法吗
  Spring MVC控制器类的方法的所支持的方法参数类型
  SpringMVC Model、ModelMap和ModelAndView的区别和用法
  Spring Cloud构建微服务架构的服务注册与发现
  Spring Cloud构建微服务架构的分布式配置中心
  RabbitMQ的用途、原理以及配置
  带你逆袭kafka之路
  使用idea和gradle编译spring5源码
  Spring MVC Controller单例陷阱
  Java-CORBA
  更多...
 IPIP: 已设置保密
楼主      
该用户目前不在线 nihaota 
  
威望: 0
级别: 新手上路
魅力: 1315
经验: 1315
现金: 2944
发文章数: 243
注册时间: 0001-01-01
 消息  查看  搜索  好友  邮件  复制  引用


讨债公司
发文章时间 2022-10-28 21:31:32
 IPIP: 已设置保密 1 楼     
1页 1条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。