知识大全 Maven插件之Maven-Enforcer-Plugin

Posted 版本

篇首语:时穷节乃现,一一垂丹青。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Maven插件之Maven-Enforcer-Plugin相关的知识,希望对你有一定的参考价值。

Maven插件之Maven-Enforcer-Plugin  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  实际开发中 项目经理总会告诉开发人员:开发时要遵守什么什么样的约定 命名规范怎么怎样样

  约定优于配置 很重要!比较规范的公司(或者项目组) 会把规范写到文档中 让开发人员去遵守

  问题来了 怎么才能知道大家有没有按照规范走呢?有人会说了 找个工具校验一下就可以了 开源工具很多 是的 这是对的 但对于项目中使用的程序 工具 开发环境呢 有工作经验的人应该都知道 很多时候 新手出现诡异的问题 一部分原因是因为环境不对 或者软件版本不符;这时应该怎么检查呢?

  Maven提供了Maven Enforcer Plugin插件 用来校验约定遵守情况(或者说校验开发环境) 比如JDK的版本 Maven的版本 开发环境(Linux Windows等) 依赖jar包的版本等等;官网地址:

  下面介绍该插件的使用:

  <plugin> <groupId> apache maven plugins</groupId> <artifactId>maven enforcer plugin</artifactId> <version> </version> <executions> <execution> <id>enforce</id> <phase>validate</phase> <goals> <goal>display info</goal> <goal>enforce</goal> </goals> </execution> </executions> <configuration> <! 规则检查不通过就构建失败;Default:false > <! <failFast>true</failFast> > <rules> <requireMavenVersion> <version> </version> </requireMavenVersion> <requireJavaVersion> <version> </version> </requireJavaVersion> <bannedDependencies> <! 是否检查传递性依赖(间接依赖) > <searchTransitive>true</searchTransitive> <excludes> <exclude>junit:junit</exclude> </excludes> <message>must use TestNG</message> </bannedDependencies> </rules> </configuration> </plugin>

  该插件基于<rules>进行校验 以上配置了三条规则:

  requireMavenVersion表示Maven的版本大于等于 ;

  requireJavaVersion表示JDK的版本大于等于 ;

  bannedDependencies表示禁止使用的依赖 其可用配置如下:

  searchTransitive:是否搜索间接依赖;

  excludes:禁止依赖列表;其表示格式为groupId[:artifactId][:version][:type][:scope][:classifier]中括号内为可选 可使用通配符替换整体或者部分;例如 以下demo为有效:

  <excludes>

  <! groupId[:artifactId][:version][:type][:scope][:classifier] >

  <exclude> log</exclude>

  <exclude> log:log j</exclude>

  <exclude> log:log j: </exclude>

  <exclude> log:*: </exclude><! 排除 及其以上版本 等价于[ ) >

  <exclude> log:*:[ ]</exclude><! 明确排除 版本 >

  <exclude> log:*:*:jar:test</exclude>

  <exclude>*:*:*:jar:pile:tests</exclude>

  <exclude> apache *:maven *:*</exclude>

  </excludes>

  includes:从禁止的依赖中排除的依赖列表(当excludes使用通配符时 可使用此属性排除);

  message:校验失败 打印的提示信息;

  如果想要配置更为复杂的版本范围 可参考:

  除了以上的配置外 该插件内置了很多其他的规则 内置规则完整列表在:

  maven默认提供了多种校验规则 满足我们各种需求;同时又提供了maven enforcer rule api允许我们自定义规则 具体参见:

cha138/Article/program/Web/201405/30981

相关参考

知识大全 Maven起步——教你开始使用Maven二(图)

Maven起步——教你开始使用Maven二(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 关于Eclipse插件开发之定制向导(图)

关于Eclipse插件开发之定制向导(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Inv

知识大全 Eclipse入门之使用指南及开发Eclipse插件 (2)

Eclipse入门之使用指南及开发Eclipse插件(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 在Eclipse中如何利用Maven

Java深入:在Eclipse中如何利用Maven  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 用Maven生成JDEE工程文件

用Maven生成JDEE工程文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天无意中找到一

知识大全 RCP获取当前插件项目路径

RCP获取当前插件项目路径  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天需要获取插件项目下

知识大全 ios9.0.1越狱了为什么装不了插件 急

ios9.0.1越狱了为什么装不了插件急因为插件没更新,等太极的越狱工具,放出后估计大部分插件就能用了ios9.0.1越狱后有什么广告拦截的插件相比于iOS9来说,苹果在iOS9.1中除了修复Bug、

知识大全 jQuery插件编写

jQuery插件编写  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  /*Helloeverybo

知识大全 开发Eclipse插件

开发Eclipse插件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在本文中DavidGall

知识大全 我的世界citizens插件,如何设置自定义掉落物

我的世界citizens插件,如何设置自定义掉落物请找mm(MythicMobs)插件这里是原帖链接xd里面详细记载着如何使用,只是阅读起来一点都不友好罢了.回到原题,为什么要npc插件去搞掉落让玩家