maven插件整理 常用maven
插件整理,maven
本质上是一个插件框架,它的核心并不具备执行任何构建任务的能力,所有的任务都是交由插件完成。
maven
插件官网 ,里面有一个Supported By The Maven Project
标题下的列表中的插件,是由maven
官方支持的插件。还有一个Outside The Maven Land
下的At MojoHaus (formerly known as codehaus.org)
这个不是官网的插件列表,但其中的部分插件也是比较常用的。
1.maven-antrun-plugin 主要作用是能让用户在maven
项目中运行Ant
任务。
2.maven-archetype-plugin Archtype
指项目的骨架,主要作用是创建项目骨架原型。
archetype:generate
:使用交互式的方式提示用户输入必要的信息以创建项目
3.maven-assembly-plugin 这个插件就比较常用,用来对项目制作一些压缩包,定制压缩包中的内容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 <plugin > <artifactId > maven-assembly-plugin</artifactId > <configuration > <appendAssemblyId > false</appendAssemblyId > <descriptors > <descriptor > src/main/resources/config/assembly.xml</descriptor > </descriptors > </configuration > <executions > <execution > <phase > package</phase > <goals > <goal > single</goal > </goals > </execution > </executions > </plugin >
4.maven-dependency-plugin 主要作用是分析项目中的依赖。
dependency:list
:项目最终解析到的依赖列表
dependency:tree
:进一步的描绘项目依赖树
dependency:analyze
:项目依赖潜在的问题
dependency:copy-dependencies
:能将项目依赖从本地Maven仓库复制到某个特定的文件夹下面
5.maven-enforcer-plugin 设置约束项目的一系列规则并强制遵守,比如maven
的版本,java
的版本,禁止某些依赖,某些依赖的版本最低版本,在父pom
中配置规则,当不符合规则时,会报错。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 <plugin > <groupId > org.apache.maven.plugins</groupId > <artifactId > maven-enforcer-plugin</artifactId > <version > 1.3.1</version > <executions > <execution > <id > enforce</id > <phase > validate</phase > <goals > <goal > display-info</goal > <goal > enforce</goal > </goals > </execution > </executions > <configuration > <rules > <requireMavenVersion > <version > 3.0.4</version > </requireMavenVersion > <requireJavaVersion > <version > 1.6.0</version > </requireJavaVersion > <bannedDependencies > <searchTransitive > true</searchTransitive > <excludes > <exclude > junit:junit</exclude > </excludes > <message > must use TestNG</message > </bannedDependencies > </rules > </configuration > </plugin >
在exclude
标签中,可以通过通配符的方式设置一些依赖规则,其他详见内置版本范围规则
1 2 3 4 5 6 7 8 9 10 <excludes > <exclude > org.log</exclude > <exclude > org.log:log4j</exclude > <exclude > org.log:log4j:1.0</exclude > <exclude > org.log:*:1.2</exclude > <exclude > org.log:*:[1.2]</exclude > <exclude > org.log:*:*:jar:test</exclude > <exclude > *:*:*:jar:compile:tests</exclude > </excludes >
6.maven-help-plugin 一个辅助工具,用来获取一些详细使用信息。
1 2 3 4 5 6 7 # mvn help:describe -Dplugin=org.codehaus.mojo:versions-maven-plugin:2.7 # mvn help:describe -Dplugin=org.codehaus.mojo:versions-maven-plugin:2.7 -Dgoal=set # mvn help:effective-settings