>>分享流行的Java框架以及开源软件,对孙卫琴的《精通Spring》、《Spring Cloud Alibaba微服务开发零基础入门到实操》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 28889 个阅读者 刷新本主题
 * 贴子主题:  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开发-->访问数据库(Ⅰ)
  JSP与Hibernate开发-->使用JPA和注解
  Java网络编程-->通过JDBC API访问数据库
  精通Spring-->
  Vue3开发-->通过Vuex进行状态管理
  推荐一本微服务开发经典书籍《Spring Cloud Alibaba微服务开...
  Netty的粘包和拆包问题分析
  使用Spring MVC多次读取请求Request Body的内容
  谈谈响应式编程
  在Spring MVC中配置线程池,进行异步请求处理
  Spring MVC中自定义国家化LocaleResolver
  vue父、子组件相关的传递
  Spring MVC数据验证
  国内 Java 开发者必备的两个神器:Maven国内镜像和Spring国内...
  从零搭建一个基于 ELK 的日志、指标收集与监控系统
  springboot集成通用mapper实现Echarts
  Zabbix后端存储ES的优化实践
  Spring Boot 整合 Ehcache
  Gradle入门
  Spring MVC Controller单例陷阱
  更多...
 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前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。