Maven-archetype和plugin

来源:互联网 发布:算法设计与分析王秋芬 编辑:程序博客网 时间:2024/05/18 07:55

Maven Archetype
Maven项目的骨架,也可以理解为Maven项目的模板,创建Maven项目时根据此模板创建项目。

常用Maven Archetype:
(1)maven-archetype-quickstart:默认Archetype,基本内容包括:
A:一个包含Junit声明的pom.xml
B:src/main/java主代码目录以及一个名为App的类
C:src/test/java测试代码目录以及一个名为AppTest的测试用例
(2)maven-archetype-webapp:一个简单的web项目创建模板,生成的项目内容包括:
A:一个packaging为war且带有Junit依赖声明的pom.xml
B: src/main/webapp/目录
C:src/main/webapp/index.jsp文件
D:src/main/webapp/WEB-INF/web.xml文件

Maven本质是一个插件框架,其核心并不执行任何构建工作,所有这些工作全部通过插件完成。maven常用插件:

(1)maven-antrun-plugin:能让用户在Maven项目中运行Ant任务。在一些由Ant向Maven迁移的项目中,该插件尤其有用,用户可以直接在该插件的配置以Ant方式编写Target,然后交给插件的run目标去执行。此插件目标通常与生命周期绑定。

(2)maven-archetype-plugin:Archetype即项目的骨架,命令mvn archetype:generate即为让此插件生成一个简单的项目骨架。

(3)maven-assembly-plugin:此插件是用作制作项目分发包,该分发包可能包含了项目的可执行的文件,源代码,readme,平台脚本等,此插件支持各种主流格式如:zip,tar.gzjar和war等。使用此插件需要用户使用一个名为assembly.xml的元数据文件来表述打包。

(4)maven-dependency-plugin:此插件最大用途是帮助分析项目依赖,dependency:list能够列出项目最终解析到的依赖dependency:tree能进一步描述项目依赖树,dependency:analyze可以告诉你项目依赖潜在的问题,如果有直接使用却没有声明的依赖,该目标会发出警告dependency:copy-dependencies能将项目依赖从本地Maven仓库
复制到某个特定的文件夹下。

(5)maven-enforcer-plugin:该插件目标负责检查规则,默认绑定到生命周期Validate阶段。该插件允许创建一系列相关规则强制项目开发遵守,包括设定java版本,设定maven版本,禁止某些依赖,禁止SNAPSHOT依赖等。

(6)maven-help-plugin:这是一个用户帮助插件,help:system可以打印所有可用的环境变量和java系统属,help:effective-pom打印项目的有效POM(指合并了所有父Pom的XML),help:effective-settings打印项目有效settings。

(7)maven-release-plugin:此插件用途是帮助自动化项目版本发布,release:prepare版本发布前的准备,具体工作包括是否有未提交代码,检查是否有SNAPSHOT依赖,升级项目的SNAPSHOT版本至RELEASE版本,为项目打标签等。release:perform则是签出标签中的release代码,构建并发布。

0 0