本文讨论可选依赖和排除依赖.  帮助用户理解它们是什么, 如何使用, 它们如何工作, 以及什么时候使用它们最合适. 本文也将解释为什么排除是基于单个依赖的, 而非POM级别的. Optional Dependencies 可选依赖用在不能真正地将一个项目划分为多个子模块时.  一些依赖只在该项目中的某些特性中使用, 并且如果这些特性没有使用到的话, 这些依赖就不需要.  最理想的情况, 这样的特性会被划分到一个依赖于核心功能工程的子模块, 这个新子模块将只有非可选依赖, 因为一旦你决定使用该子模…
我们知道,maven的依赖关系是有传递性的.如:A-->B,B-->C.但有时候,项目A可能不是必需依赖C,因此需要在项目A中排除对A的依赖.在maven的依赖管理中,有两种方式可以对依赖关系进行,分别是可选依赖(Optional Dependencies)以及依赖排除(Dependency Exclusions). 一.可选依赖 当一个项目A依赖另一个项目B时,项目A可能很少一部分功能用到了项目B,此时就可以在A中配置对B的可选依赖.举例来说,一个类似hibernate的项目,它支持对mys…
Optional和Exclusions都是用来排除jar包依赖使用的,两者在使用上却是相反. Optional定义后,该依赖只能在本项目中传递,不会传递到引用该项目的父项目中,父项目需要主动引用该依赖才行. Exclusions则是主动排除子项目传递过来的依赖. 用法区别 Project-X -> Project-A Project-A -> Project-B <project> ... <dependencies> <dependency> <gr…
写在前面 本来想写一篇「如何自定义Spring Boot Starter」,但是为了更好理解 Starter 的一些设计理念和其中的关键点,所以提前将一些细节内容单独提取出来讲解说明 在 Maven pom.xml 中,你经常会看到依赖项中有类似下面的代码: <dependency> <groupId>sample.ProjectA</groupId> <artifactId>Project-A</artifactId> <version&…
1.概念介绍 Dependencies:是可选依赖(Optional Dependencies) Exclusions:是依赖排除(Dependency Exclusions) 2.Dependencies (1)当一个项目A依赖另一个项目B时,项目A可能很少一部分功能用到了项目B,此时就可以在A中配置对B的可选依赖.举例来说,一个类似hibernate的项目,它支持对mysql.oracle等各种数据库的支持,但是在引用这个项目时,我们可能只用到其对mysql的支持,此时就可以在这个项目中配置…
Optional和Exclusions都是用来排除jar包依赖使用的,两者在使用上却是相反. Optional定义后,该依赖只能在本项目中传递,不会传递到引用该项目的父项目中,父项目需要主动引用该依赖才行. Exclusions则是主动排除子项目传递过来的依赖. 用法区别 Project-X -> Project-A\ Project-A -> Project-B <project> ... <dependencies> <dependency> <g…
maven 的gav的v(版本问题) 报错dependencies.dependency.version is missing 出现的场景 一个项目中有多个模块 父模块中出现dependencies.dependency.version is missing 子模块中出现dependencies.dependency.version is missing 模块结构 父模块结构(pom.xml) <?xml version="1.0" encoding="UTF-8&qu…
以前一直没有在意,今天建立maven工程的时候在<dependencyManagement>节点下加入了junit依赖,结果在dependency Graph中没有发现junit的依赖关系,怎么回事?没有加入项目依赖?遂google之 得解释: 1 .使用项目继承 利用项目继承可以将结构信息,部署信息,共同的依赖信息放置在单一的位置.在每个工程的 pom 中: [...] <parent> <groupId>org.apache.maven.proficio</g…
2016-10-09 23:14:43.177 DEBUG [restartedMain][org.springframework.core.type.classreading.AnnotationAttributesReadingVisitor] Failed to class-load type while reading annotation metadata. This is a non-fatal error, but certain annotation metadata may b…
我们在使用eclipse从svn上check项目下来,然后转成maven web 项目的时候,经常会遇到一个问题,就是找不到maven依赖(maven managed dependencies),从而会导致整个项目以来的jar包都不能够运行起来.我看了许多网上说的方法,其实都不是很管用.所以就写下这篇文章,希望对大家有所帮助! 首先,打开项目的navigator视图找到 .classpath 文件,然后往里面添加一段话就可以了: <classpathentry kind="con"…