Maven实战(二)---多模块开发---缺少Jar包
来源:互联网 发布:网页版淘宝 编辑:程序博客网 时间:2024/05/29 15:50
Maven里面的Jar包经常出现Missing的情况,无外乎几种情况:
1、私服里面没有相应的版本号的Jar包或者Jar包没写版本号
2、Jar包引错了,相应的依赖关系也就错了
3、引入了依赖的Jar包,没被管理起来
第一二个问题解决起来挺简单的,第三个问题对于不理解Maven的还需要解决一番。
其实第三个问题就存在与Maven的<dependencies>节点与<dependencymanagement>节点。
<dependencies>节点是项目依赖,项目所依赖的Jar包;
<dependencymanagement>节点是多模块Maven项目开发的时候的依赖管理控制的。
在多模块开发的时候,利用项目继承可以将结构信息、部署信息,将共同的依赖放在一个父类中。每个子项目的pom继承父类的pom中的依赖关系。这样就解决了所有的子项目的依赖项统一版本。所以为了项目的正确运行,必须让而在父类中将这些Jar包管理起来,在父项目的pom中定义共同的依赖关系。这就是依赖管理。
来看一下这两个节点的代码:
Project A<project> <modelVersion>4.0.0</modelVersion> <groupId>maven</groupId> <artifactId>A</artifactId> <packaging>pom</packaging> <name>A</name> <version>1.0</version> <dependencyManagement> <dependencies> <dependency> <groupId>test</groupId> <artifactId>a</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>test</groupId> <artifactId>b</artifactId> <version>1.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>test</groupId> <artifactId>c</artifactId> <version>1.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>test</groupId> <artifactId>d</artifactId> <version>1.2</version> </dependency> </dependencies> </dependencyManagement></project>
<project> <modelVersion>4.0.0</modelVersion> <groupId>maven</groupId> <artifactId>B</artifactId> <packaging>pom</packaging> <name>B</name> <version>1.0</version> <dependencyManagement> <dependencies> <dependency> <groupId>maven</groupId> <artifactId>A</artifactId> <version>1.0</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>test</groupId> <artifactId>d</artifactId> <version>1.0</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>test</groupId> <artifactId>a</artifactId> <version>1.0</version> <scope>runtime</scope> </dependency> <dependency> <groupId>test</groupId> <artifactId>c</artifactId> <scope>runtime</scope> </dependency> </dependencies></project>
区别:
<dependencies>中的jar直接加到项目中,管理的是依赖关系(如果有父pom,子pom,则子pom中只能被动接受父类的版本);<dependencyManagement>主要管理版本,对于子类继承同一个父类是很有用的,集中管理依赖版本不添加依赖关系,对于其中定义的版本,子pom不一定要继承父pom所定义的版本。
4 1
- Maven实战(二)---多模块开发---缺少Jar包
- Maven实战(一)---Maven Build--缺少Jar包
- 导入maven项目缺少jar包,解决办法
- maven创建项目缺少 maven-resources-plugin-2.6.jar 包。
- 使用maven加载项目中缺少的jar包
- 使用maven加载项目中缺少的jar包
- maven调试时 缺少log4j相关jar包
- 使用maven加载项目中缺少的jar包
- Maven项目一直提示缺少jar包解决办法
- eclipse项目缺少maven本地仓库jar包
- 使用maven导入项目缺少的jar包
- maven项目部署到tomcat提示缺少jar包
- jeesite本地maven版缺少jar包解决方案
- 使用maven加载项目中缺少的jar包
- Maven总结(二)Maven构建可执行的jar包并且包含依赖jar包
- Maven多模块实战
- Maven多模块实战
- Maven多模块实战
- Ubuntu-ADT-连接Anroid真机-无法识别问题
- ubuntu修改、删除用户
- Raspberry Pi学习笔记
- USACO 2.2.5 挤牛奶
- hdoj 1181 problem变形课(并查集)
- Maven实战(二)---多模块开发---缺少Jar包
- ubuntu在recovery模式下更改用户密码
- Android Loader(四) 自定义Loader从网络中获取文本数据
- 【Python爬虫】批量抓取网页上的视频
- 《读书笔记》设计模式——装饰模式
- 存储管理-分区分配与回收算法(Java简单实现)
- HDU 5124 树状数组+map操作
- char、varchar、nchar、nvarchar的区别
- Java面试题--基础知识部分