在maven的依赖管理中,有两种方式可以对依赖关系进行,分别是可选依赖(Optional Dependencies)以及依赖排除(Dependency Exclusions)。 一、可选依赖 当一个项目A依赖另一个项目B时,项目A可能很少一部分功能用到了项目B,此时就可以在A中配置对B的可选依赖。举例来说,一个类似hibernate的项目,它支持对mysql、oracle等各种...
-- declare the dependency to be set as optional --><dependency><groupId>sample.ProjectB</groupId><artifactId>Project-B</artifactId><version>1.0</version><scope>compile</scope><optional>true</optional><!-- value will be true or false only --></dependency></dependencies></project> 假设...
--declare the dependency to be set as optional-->5<dependency>6<groupId>sample.ProjectB</groupId>7<artifactId>Project-B</artifactId>8<version>1.0</version>9<scope>compile</scope>10<optional>true</optional><!--value will be true or false only-->11</dependency>12</dependencies>13</proj...
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.18</version><optional>true</optional></dependency> optional表示是否会传递依赖,有两个可填值(假如不声明optional标签,默认就是false): false: 传递依赖 true:不传递依赖 举例:A引用了B的依赖,而B又引用了C依赖。
我们知道,maven的依赖关系是有传递性的。如:A-->B,B-->C。但有时候,项目A可能不是必需依赖C,因此需要在项目A中排除对A的依赖。在maven的依赖管理中,有两种方式可以对依赖关系进行,分别是可选依赖(Optional Dependencies)以及依赖排除(Dependency Exclusions)。
应用场景:接上文例子,假如项目X并没有将所有对驱动的依赖设置为可选依赖(Optional Dependencies),那么项目Y直接引入对项目X的依赖时,就会将项目X中所有对驱动的依赖一起引入。这时候,就需要我们在引入项目X时通过依赖排除(Dependency Exclusions)去除掉我们不需要的那些依赖。
optional 表示该依赖是可选的,意味着构建后,标记为 optional 的依赖是不会被一起打入 jar 包的,也不会发生依赖传递。这样不仅我们自己的组件端体积变小了,应用服务也解决了引入过多无用依赖的问题。<!-- mysql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><...
maven dependency 版本区间 maven dependency optional 解析一: 应用场景:projectA 依赖projectB, projectB 依赖projectC时 <dependency> <groupId>com.itear.projectC</groupId> <artifactId>projectC</artifactId> <version>0.0.1-SNAPSHOT</version>
1、maven官网:http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html 在实际项目中,添加了 <dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>2.12</version> ...
一、<optional>属性<optional>属性用于标记依赖项是否为可选的。当一个依赖项被标记为可选时,它不会强制包含在最终的构建产物中。这在使用插件或某些特定场景下非常有用,例如,你可能只想在运行时环境或开发环境中包含某个依赖项,而不是将其包含在最终的发布包中。使用方法:在依赖项的<dependency>元素内部添加<...