如何让maven构建在重复依赖项上失败?

时间:2016-11-29 22:12:05

标签: java maven dependency-management maven-dependency-plugin

如果我在同一个pom中有两个相同的依赖项,我希望构建失败。目前,我可以通过Maven Dependency Plugin" analyze-duplicate"来检测它发生的情况。然而,像其他一些人一样,没有选择failOnWarning的选项(另外,它在Info级别打印,而不是警告)。是否可以选择扩展它?

1 个答案:

答案 0 :(得分:7)

通常,当您希望构建因某种原因失败时,可以使用好的插件来查看Maven Enforcer Plugin。这个插件可以配置一组规则,经验证后,这些规则将无法构建。

在这种情况下,它需要是一个检查重复依赖项的规则,并且只有一个内置规则:<div id="filterController" ng-controller="gridController as ctrl" style="max-height=500px" ng-cloak> <div id="filters" ng-repeat="x in areas" ng-class="{'selected': clicked}" ng-click="clicked = !clicked;filt();">{{x}}</div> </div> <div id="gridContainer" ng-controller="gridController as ctrl" ng-cloak> <md-content layout-padding style="clear: both;"> <md-grid-list md-cols-gt-md="9" md-cols-sm="1" md-cols-md="6" md-row-height-gt-md="1:1" md-row-height="4:3" md-gutter-gt-md="16px" md-gutter-gt-sm="8px" md-gutter="4px"> <md-grid-tile ng-class="{'flipped': clicked}" ng-click="clicked = !clicked" ng-repeat="tile in colorTiles | filter:filterAreas" md-colspan-gt-sm="{{tile.colspan}}" md-rowspan-gt-sm="{{tile.rowspan}}"> <div id="f1_card" class="shadow"> <div class="front face" style="background-color: tile.color !important;" ng-style="{ 'background': tile.color }"> <div > <a> some stuff </a> </div> </div> <div class="back face center" style="background-color: tile.color !important;" ng-style="{ 'background': tile.color }"> <div style= "position: relative;"> <a > some stuff </a> </div> </div> </div> </md-grid-tile> </md-grid-list> </md-content> </div> 。因此,你可以

<banDuplicatePomDependencyVersions>

遗憾的是,此规则没有记录(但是,它将在下一个版本中,请参阅MENFORCER-259),但它从插件的版本1.3(MENFORCER-152)开始存在。

此规则的作用是检查没有2个具有相同<plugin> <artifactId>maven-enforcer-plugin</artifactId> <version>1.4.1</version> <executions> <execution> <id>enforce-no-duplicate-dependencies</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <banDuplicatePomDependencyVersions/> </rules> </configuration> </execution> </executions> </plugin> 的重复声明;也就是说,在POM中声明的具有相同组ID和工件id的两个声明的依赖项必须具有不同的类型和/或分类器。