在Maven2中,为了排除单个传递依赖,我必须这样做:
<dependency>
<groupId>sample.group</groupId>
<artifactId>sample-artifactB</artifactId>
<version>1</version>
<exclusions>
<exclusion>
<groupId>sample.group</groupId>
<artifactId>sample-artifactAB</artifactId>
</exclusion>
</exclusions>
</dependency>
这种方法的问题在于,我必须对sample-artifactB提供的每个传递依赖项都这样做。
是否有一种方法可以使用某种通配符一次性排除所有传递依赖项,而不是逐个排除?
对我有用的(可能是Maven的一个新特性)只是在排除元素中使用通配符。
我有一个多模块项目,其中包含一个在两个war打包模块中引用的“app”模块。其中一个war打包的模块实际上只需要域类(我还没有将它们从app模块中分离出来)。我发现这个方法很有效:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>app</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
groupId和artifactId上的通配符排除了通常会通过使用该依赖项传播到模块的所有依赖项。
对我有用的(可能是Maven的一个新特性)只是在排除元素中使用通配符。
我有一个多模块项目,其中包含一个在两个war打包模块中引用的“app”模块。其中一个war打包的模块实际上只需要域类(我还没有将它们从app模块中分离出来)。我发现这个方法很有效:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>app</artifactId>
<version>${project.version}</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
groupId和artifactId上的通配符排除了通常会通过使用该依赖项传播到模块的所有依赖项。