十、Maven外部依赖

现在,你也知道Maven做依赖管理使用Maven仓库的概念。但是,如果依赖是不提供任何远程存储库和中央存储库发生了什么? Maven提供为使用外部依赖的概念,应用在这样的场景。

举一个例子,让我们做以下修改项在目Maven创建项目 这一章节中创建。

  • 添加lib文件夹到src文件夹

  • 复制任何的jar到lib文件夹。我们使用ldapjdk.jar,这是LDAP操作的辅助库。

现在我们的项目结构看起来应该像下面的:

external repository project structure

在这里,有自己的特定项目,这是很平常案例库,它可以包含jar文件可能无法在任何Maven存储库,那么需要下载。如果代码使用这个Maven库,那么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}srclibldapjdk.jar</systemPath>
      </dependency>
   </dependencies>

</project>

先看下依赖性在上面的例子,清除下列有关外部相关的关键概念第二dependency元素。

  • 外部依赖(jar库位置)可以在pom.xml中以同样的方式与其他依赖关系进行配置。

  • 指定的groupId一样的库名称。

  • 指定artifactId的相同库的名称。

  • 指定范围的系统。

  • 指定相系统项目的位置。

希望现在你清楚了解外部依赖,能够指定在Maven项目的外部依赖。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven是一个功能强大的项目构建工具,它可以管理项目中的依赖关系。在一些情况下,我们希望将项目中所依赖的包外部化,即不将这些依赖包打包到项目的输出文件中。 要实现maven打包依赖外部化,可以通过以下步骤: 1. 在项目的pom.xml文件中,使用<scope>provided</scope>标签将依赖项的范围设置为provided。通过此标签,我们告诉maven这些依赖项在运行时已经存在于目标环境中,因此不需要将它们打包到最终生成的项目文件中。例如: ```xml <dependency> <groupId>com.example</groupId> <artifactId>dependency-package</artifactId> <version>1.0.0</version> <scope>provided</scope> </dependency> ``` 2. 在项目部署时,确保将所需的依赖项包含在运行时环境中。这可以通过将这些依赖项放置在运行时环境的类路径中来实现。例如,可以将这些依赖项放置在Tomcat服务器的共享目录下,或者在应用程序的WEB-INF/lib目录下放置这些依赖项的JAR文件。 通过这种方式,maven在构建项目时会将依赖项打包到项目输出文件中,但在运行时却不需要将这些依赖项放置在项目中,而是依赖外部环境提供的包。 这种方式的好处是可以减小项目的发布包大小,提高项目的运行效率和部署速度,并且可以更灵活地管理项目的依赖关系。同时,也能够避免由于依赖包重复打包而导致的潜在冲突问题。 然而,需要注意的是,这种方式要求运行时环境必须存在所依赖的包,否则会导致项目在运行时出现错误。因此,在部署项目之前,需要确保外部环境已经配置了正确的依赖项。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值