maven-依赖管理-实战篇
来源:互联网 发布:北京房价数据app 编辑:程序博客网 时间:2024/05/22 17:01
上篇文章介绍了依赖,这篇文章介绍下在项目中是怎么应用的。
以 basicInfo 服务为例:
basicinfo-parent pom文件:
<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.dmsdbj.itoo</groupId><artifactId>itoo-root</artifactId><version>1.0.0-SNAPSHOT</version></parent><groupId>com.dmsdbj.itoo</groupId><artifactId>basicInfo-parent</artifactId><version>1.0.0-SNAPSHOT</version><packaging>pom</packaging><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId></dependency></dependencies><modules><module>basicInfo-api</module><module>basicInfo-service</module><module>basicInfo-web</module></modules></project>
basic-api pom文件
<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.dmsdbj.itoo</groupId><artifactId>basicInfo-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent><groupId>com.dmsdbj.itoo</groupId><artifactId>basicInfo-api</artifactId><version>1.0.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><dependency><groupId>com.dmsdbj.itoo</groupId><artifactId>itoo-tool</artifactId><version>${project.parent.version}</version></dependency><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><exclusions><exclusion><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId></exclusion></exclusions></dependency></dependencies></project>
<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.dmsdbj.itoo</groupId><artifactId>basicInfo-parent</artifactId><version>1.0.0-SNAPSHOT</version></parent><groupId>com.dmsdbj.itoo</groupId><artifactId>basicInfo-api</artifactId><version>1.0.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><dependency><groupId>com.dmsdbj.itoo</groupId><artifactId>itoo-tool</artifactId><version>${project.parent.version}</version></dependency><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><exclusions><exclusion><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId></exclusion></exclusions></dependency></dependencies></project>
因为service 的pom 文件中 依赖 了 api 的jar 包,而api 也没有屏蔽传递依赖 ,所以api的中的jar文件 都会 传递 到 service 文件中。
也许大家会奇怪,api 的pom文件中并没有依赖那么多的jar包,为什么basic-api 会传递依赖这么多jar包那? 那是因为 parent 是聚合工程,parent 中的jar包 在 其子工程中都会有。
改进方案:
在 parent 和api 的pom文件中,所有依赖的jar包 都 加上 <scope>provided<scope> 标签,屏蔽 传递依赖。
改进之后的效果图:
小技巧: idea jar 包依赖分析工具
如果没有这个图标-请百度
总结: 大道至简!
阅读全文
0 0
- maven-依赖管理-实战篇
- Maven实战(五)-- 依赖管理
- Maven实战(五)-- 依赖管理
- maven-管理依赖-理论篇
- Maven(5)-依赖关系(实战篇)
- Maven 实战 02 依赖
- maven实战6----依赖
- 【Maven实战】05 依赖
- maven依赖管理
- maven 项目依赖管理
- Maven的依赖管理
- maven 项目依赖管理
- Maven 依赖管理
- maven依赖管理
- maven 管理依赖
- Maven依赖管理
- maven 依赖管理
- Maven的依赖管理
- ContextCompat
- C#Socket的使用与示例
- Kafka 设计与原理详解
- PAT程序设计考题——甲级1036( Boys vs Girls ) C++实现
- 浅谈BFC块状格式化上下文环境
- maven-依赖管理-实战篇
- 关于C#静态构造函数的几点说明
- bzoj 1559: [JSOI2009]密码 AC自动机+状压dp
- hdu 3072
- 2017上半年的工作总结
- HUD 1106 排序
- 和为S的连续正数序列
- piwik安装详解
- php XAMPP