`

Maven实战-多项目间的依赖

 
阅读更多

      根据Maven的相关资料,我们可以很清楚的了解到,仓库只分为两类:本地仓库和远程仓库。当maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。如果本地仓库和远程仓库都没有需要的构件,maven就会报错。

     根据以上原则,如果两个项目间有依赖关系,例如项目A依赖于项目B,可以先利用Maven的install命令将项目B打包安装到本地仓库,此时A对于B的依赖已经存在于本地仓库,直接在项目A中增加对B的module层的依赖配置,然后利用Mven将项目A打包,此时可以成功将B的dependency依赖打包到A中。


      但是在这个过程中遇到过一个问题,我和另外一个同事都利用以上方法对A进行install,他的成功了,但是我却一直报错,最后一比较发现,是Maven版本不同(maven3不行而maven2却可以),原因在于B中设置类一个全局变量配置,打包之后,无法进行替换,导致依赖无法被引入。于是修改了变量配置,将版本号进行了硬编码,再次尝试,maven3打包成功。

分享到:
评论

相关推荐

    maven笔记:maven-overlay-实战笔记

    在描述中提到的博客链接,虽然无法直接访问,但根据常见的 Maven overlay 实战场景,我们可以推断博主可能分享了如何设置和使用 Maven overlay 来合并多个 Web 项目的资源,如 JSP 页面、CSS、JavaScript 文件等,以...

    Maven使用实战-从入门到精通实践【张振华.Jack】

    Maven使用实战-从入门到精通实践【张振华.Jack】 Maven简介、Maven主要做什么用? 项目对象模型(POM) 坐标(Coordinates)、打包方式(Packaging)、项目描述 项目子父级关系(parent) 依赖管理(dependency),冲突了...

    Maven 实战(中文pdf)

    《Maven实战》不仅覆盖了Maven的基础知识,还深入到高级特性和最佳实践,如使用 profiles 进行条件构建,或者处理复杂的多模块项目。对于初学者,书中提供的实例和实战经验可以帮助快速上手;对于经验丰富的开发者,...

    Maven 实战.pdf-完整版

    Maven不仅可以管理项目的构建、报告、文档生成,还可以管理依赖、源码、文档、测试、打包、分发等,并提供了对应的插件机制,以支持更广泛的构建任务。 Maven的实战性强,意味着在学习和使用过程中,通常会结合大量...

    maven 实战 所有源代码

    ** Maven实战:所有源代码详解 ** Maven是一款强大的项目管理和构建工具,广泛应用于Java开发领域。...通过学习并掌握"Maven实战"中的源代码,开发者可以更好地应对复杂的项目构建挑战,实现高效且可维护的Java项目。

    Maven3实战笔记04Maven的生命周期和插件

    - **install**:将包安装到本地仓库,以使其他项目可以依赖于它。 - **deploy**:将最终版本的包复制到远程仓库供其他开发人员和项目使用。 #### Maven插件 Maven插件是用来执行具体任务的工具,每个插件可以包含...

    Maven 实战源码

    大型项目通常被划分为多个模块,Maven支持模块间的依赖和聚合,使得大型项目的构建和管理更加便捷。 9. Maven Profiles: Maven配置文件可以按环境(开发、测试、生产)划分,方便在不同环境中应用不同的配置。 ...

    maven 详细教程 实战 例子 电子书

    2. **依赖管理**: Maven 自动处理项目的依赖关系,通过声明依赖和其版本,Maven 可以自动下载并管理这些依赖库。 3. **插件**: Maven 插件用于执行特定的构建任务,如编译、测试、打包、部署等。通过在 POM 中配置...

    Maven模块项目。整合spring+springmvc+mybatis

    在本项目中,"创建Maven模块项目.docx"文档很可能是指导如何初始化Maven多模块项目,包括定义父POM和子模块POM,以及配置各个模块的依赖。而"打包web项目.docx"则可能详细介绍了如何使用Maven的war插件进行项目打包...

    day02Maven-教案-实战(IDEA).pdf

    当项目中出现多个版本的同一个依赖时,就会产生依赖冲突。Maven通过以下原则解决冲突: 1. **第一声明者优先原则**:在POM文件中先声明的依赖具有优先权。 2. **路径近者优先原则**:如果两个依赖的声明顺序相同,则...

    Maven3实战笔记07继承

    但在实际应用中,一个聚合项目(如本例所示)可能会被多个子项目继承,而这些子项目则可以通过在自己的`pom.xml`文件中添加`parent`元素来指定继承自聚合项目,从而共享和复用聚合项目中的配置和依赖。 例如,一个...

    Maven3实战笔记05仓库依赖解析与插件解析

    ### Maven3实战笔记05仓库依赖解析与插件解析 #### 一、Maven仓库依赖解析 Maven 是一个项目管理和构建工具,它通过一种称为“仓库依赖解析”的过程来管理项目的依赖关系。仓库依赖解析是指Maven如何查找并解决...

    maven-definitive-guide_zh.pdf

    #### 三、Maven实战案例 - **简单的Maven项目** - 介绍了如何创建一个简单的Maven项目,并进行构建。 - 包括项目对象模型的概念及其重要性。 - 核心概念讲解,如插件和目标、生命周期、坐标、仓库、依赖管理和...

    maven 实战 in action 中文版 3.3

    ** Maven实战In Action中文版3.3:构建高效Java项目** Maven,作为Apache软件基金会的一个项目,是一款强大的项目管理工具,尤其在Java开发领域,它简化了构建、依赖管理和项目文档的流程。《Maven实战In Action...

    smart-doc官方maven插件smart-doc-maven-plugin-master.zip

    1. **添加依赖**:在项目的`pom.xml`文件中引入Smart Doc Maven插件的依赖: ```xml <groupId>com.smartdoc</groupId> <artifactId>smart-doc-maven-plugin 最新版本号 <!-- 配置项 --> <phase>...

    maven-definitive-guide

    - **主题标识**:标签“maven”明确了本书的主题是关于Maven的,即一个自动化构建工具,它通过定义项目的生命周期、依赖管理和其他标准构建过程来简化Java项目的构建流程。 #### 部分内容分析 ##### 编辑与作者 - ...

    maven创建实战web项目

    ### Maven 创建实战 Web 项目详解 #### 一、前言 在进行Web开发时,Maven作为一款强大的构建工具,可以极大地简化项目构建过程并提高开发效率。本篇文章将详细介绍如何利用Maven创建一个Servlet版本为3.0、Java...

    Maven实战2_maven_

    **Maven实战2:深入理解与应用** Maven是一个强大的Java项目管理工具,它通过一套标准的构建生命周期和依赖管理机制,简化了项目的构建、测试和部署过程。本教程《Maven实战2》旨在帮助开发者深入理解和高效使用...

Global site tag (gtag.js) - Google Analytics