manen学习之三依赖
首先依赖的写法是 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <dependencies></dependencies>中可以包含多个依赖 依赖具有传递性比如: a-->b a依赖b,c-->a c依赖a 则c会自动依赖b 想让c依赖a的时候不自动依赖b可以使用2种方法 一:让a依赖b的时候scope>test</scope> 默认不写的是compile具有传递性。或者写<optional>true</optional>则当别的模块依赖a的时候不会依赖b 二:让c依赖a的时候可以主动排除c对b的依赖比如: <dependency> <groupId>com.djk</groupId> <artifactId>001-djk</artifactId> <version>0.0.1-SNAPSHOT</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> </exclusions> </dependency> 排除了对spring的依赖。 <exclusion>中不需要写version的原因是一个模块不会依赖另一个模块得2个版本。 依赖的冲突: a-->c1.0 b-->c1.1 d-->a和b a模块依赖c的1.0版本 b模块依赖c的1.1版本 d模块依赖a 则d模块依赖c1.0还是c1.1? 谁在前面就依赖谁如果依赖a在前面则依赖c1.0 否则依赖c1.1 maven3.0版本后可以直接自己依赖c的版本,因为依赖会按最短 路径来依赖比如: a-->c1.0 b--c1.1 e-->b f-->a和e 则不管a和e依赖谁在前面 f依赖c1.0 因为他的路径短 注意:一个工程如果依赖一个模块的2个版本那么2个版本哪个在后面用哪个 和上面的不一样 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |