根据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 overlay 实战场景,我们可以推断博主可能分享了如何设置和使用 Maven overlay 来合并多个 Web 项目的资源,如 JSP 页面、CSS、JavaScript 文件等,以...
Maven使用实战-从入门到精通实践【张振华.Jack】 Maven简介、Maven主要做什么用? 项目对象模型(POM) 坐标(Coordinates)、打包方式(Packaging)、项目描述 项目子父级关系(parent) 依赖管理(dependency),冲突了...
《Maven实战》不仅覆盖了Maven的基础知识,还深入到高级特性和最佳实践,如使用 profiles 进行条件构建,或者处理复杂的多模块项目。对于初学者,书中提供的实例和实战经验可以帮助快速上手;对于经验丰富的开发者,...
Maven不仅可以管理项目的构建、报告、文档生成,还可以管理依赖、源码、文档、测试、打包、分发等,并提供了对应的插件机制,以支持更广泛的构建任务。 Maven的实战性强,意味着在学习和使用过程中,通常会结合大量...
** Maven实战:所有源代码详解 ** Maven是一款强大的项目管理和构建工具,广泛应用于Java开发领域。...通过学习并掌握"Maven实战"中的源代码,开发者可以更好地应对复杂的项目构建挑战,实现高效且可维护的Java项目。
- **install**:将包安装到本地仓库,以使其他项目可以依赖于它。 - **deploy**:将最终版本的包复制到远程仓库供其他开发人员和项目使用。 #### Maven插件 Maven插件是用来执行具体任务的工具,每个插件可以包含...
大型项目通常被划分为多个模块,Maven支持模块间的依赖和聚合,使得大型项目的构建和管理更加便捷。 9. Maven Profiles: Maven配置文件可以按环境(开发、测试、生产)划分,方便在不同环境中应用不同的配置。 ...
2. **依赖管理**: Maven 自动处理项目的依赖关系,通过声明依赖和其版本,Maven 可以自动下载并管理这些依赖库。 3. **插件**: Maven 插件用于执行特定的构建任务,如编译、测试、打包、部署等。通过在 POM 中配置...
在本项目中,"创建Maven模块项目.docx"文档很可能是指导如何初始化Maven多模块项目,包括定义父POM和子模块POM,以及配置各个模块的依赖。而"打包web项目.docx"则可能详细介绍了如何使用Maven的war插件进行项目打包...
当项目中出现多个版本的同一个依赖时,就会产生依赖冲突。Maven通过以下原则解决冲突: 1. **第一声明者优先原则**:在POM文件中先声明的依赖具有优先权。 2. **路径近者优先原则**:如果两个依赖的声明顺序相同,则...
但在实际应用中,一个聚合项目(如本例所示)可能会被多个子项目继承,而这些子项目则可以通过在自己的`pom.xml`文件中添加`parent`元素来指定继承自聚合项目,从而共享和复用聚合项目中的配置和依赖。 例如,一个...
### Maven3实战笔记05仓库依赖解析与插件解析 #### 一、Maven仓库依赖解析 Maven 是一个项目管理和构建工具,它通过一种称为“仓库依赖解析”的过程来管理项目的依赖关系。仓库依赖解析是指Maven如何查找并解决...
#### 三、Maven实战案例 - **简单的Maven项目** - 介绍了如何创建一个简单的Maven项目,并进行构建。 - 包括项目对象模型的概念及其重要性。 - 核心概念讲解,如插件和目标、生命周期、坐标、仓库、依赖管理和...
** Maven实战In Action中文版3.3:构建高效Java项目** Maven,作为Apache软件基金会的一个项目,是一款强大的项目管理工具,尤其在Java开发领域,它简化了构建、依赖管理和项目文档的流程。《Maven实战In Action...
1. **添加依赖**:在项目的`pom.xml`文件中引入Smart Doc Maven插件的依赖: ```xml <groupId>com.smartdoc</groupId> <artifactId>smart-doc-maven-plugin 最新版本号 <!-- 配置项 --> <phase>...
- **主题标识**:标签“maven”明确了本书的主题是关于Maven的,即一个自动化构建工具,它通过定义项目的生命周期、依赖管理和其他标准构建过程来简化Java项目的构建流程。 #### 部分内容分析 ##### 编辑与作者 - ...
### Maven 创建实战 Web 项目详解 #### 一、前言 在进行Web开发时,Maven作为一款强大的构建工具,可以极大地简化项目构建过程并提高开发效率。本篇文章将详细介绍如何利用Maven创建一个Servlet版本为3.0、Java...
**Maven实战2:深入理解与应用** Maven是一个强大的Java项目管理工具,它通过一套标准的构建生命周期和依赖管理机制,简化了项目的构建、测试和部署过程。本教程《Maven实战2》旨在帮助开发者深入理解和高效使用...