大神们。 maven有没有办法实现这样的依赖关系:
我再说详细一点。项目A依赖项目B,项目B依赖项目C,但是项目C的所有类对于项目A不可见。 比如说你有一个项目a.jar,里面有类A,有个叫做A.fun1()的方法。A.fun1()方法调用了某个类库b.jar里面的一个类B的一个叫做B.fun2()的方法。
B.fun2()方法又调用了另一个类库c.jar里面类C的一个叫做C.fun3()方法
现在你能控制的只有a.jar里面的代码。你如果把b.jar和c.jar都放入依赖,就意味着A可以直接调用C了,这达不到目的。
但是如果你把b.jar放入依赖,而排除掉c.jar,那么你的A通过B也调用不到C,因为它没了。 您好
您可以使用依赖排除来使得A无法调用C。任何可传递的依赖都可以通过 "exclusion" 元素被排除在外。举例说明,A 依赖 B, B 依赖 C,因此 A 可以标记 C 为 “被排除的”。
例如
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase</artifactId>
<version>0.94.17</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
当然还可以使用依赖可选,任何可传递的依赖可以被标记为可选的,通过使用 "optional" 元素。例如:A 依赖 B, B 依赖 C。因此,B 可以标记 C 为可选的, 这样 A 就可以不再使用 C。
例如
<dependency>
<groupId>com.projecct</groupId>
<artifactId>project2</artifactId>
<version>1.0</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
页:
[1]