编程工具您现在的位置是:首页 > 工具箱 > 编程工具

Maven 简介

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-01-05编程工具 1 0关键字: Maven  

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management Syst

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。1vC无知人生

Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。1vC无知人生

此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。1vC无知人生

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具1vC无知人生

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。1vC无知人生

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。1vC无知人生

常用命令:1vC无知人生

mvn archetype:generate 创建Maven项目1vC无知人生

mvn compile 编译源代码1vC无知人生

mvn deploy 发布项目1vC无知人生

mvn test-compile 编译测试源代码1vC无知人生

mvn test 运行应用程序中的单元测试1vC无知人生

mvn site 生成项目相关信息的网站1vC无知人生

mvn clean 清除项目目录中的生成结果1vC无知人生

mvn package 根据项目生成的jar1vC无知人生

mvn install 在本地Repository中安装jar1vC无知人生

mvn eclipse:eclipse 生成eclipse项目文件1vC无知人生

mvnjetty:run 启动jetty服务1vC无知人生

mvntomcat:run 启动tomcat服务1vC无知人生

mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类1vC无知人生

生命周期1vC无知人生

Maven的生命周期是为了对所有的构建过程进行了抽象了,便于统一。1vC无知人生

clean(清理)1vC无知人生

cleanup(清理所有)1vC无知人生

此生命周期旨在给工程做清理工作,它主要包含以下阶段:1vC无知人生

pre-clean- 执行项目清理前所需要的工作。1vC无知人生

clean- 清理上一次build项目生成的文件。1vC无知人生

post-clean- 执行完成项目清理所需的工作.1vC无知人生

default(默认)1vC无知人生

validate- 验证项目是否正确且所有必要的信息都可用。1vC无知人生

initialize- 初始化构建工作,如:设置参数,创建目录等。1vC无知人生

generate-sources- 为包含在编译范围内的代码生成源代码.1vC无知人生

process-sources- 处理源代码, 如过滤值.1vC无知人生

generate-resources-1vC无知人生

process-resources- 复制并处理资源文件,至目标目录,准备打包。1vC无知人生

compile- 编译项目中的源代码.1vC无知人生

process-classes- 为编译生成的文件做后期工作, 例如做Java类的字节码增强.1vC无知人生

generate-test-sources- 为编译内容生成测试源代码.1vC无知人生

process-test-sources- 处理测试源代码。1vC无知人生

generate-test-resources-1vC无知人生

process-test-resources- 复制并处理资源文件,至目标测试目录。1vC无知人生

test-compile- 将需测试源代码编译到路径。一般来说,是编译/src/test/java目录下的java文件至目标输出的测试classpath目录中。1vC无知人生

process-test-classes-1vC无知人生

test- 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。1vC无知人生

prepare-package-1vC无知人生

package- 接受编译好的代码,打包成可发布的格式,如 JAR 。1vC无知人生

pre-integration-test-1vC无知人生

integration-test- 按需求将发布包部署到运行环境。1vC无知人生

post-integration-test-1vC无知人生

verify-1vC无知人生

install-将包安装到本地仓库,给其他本地引用提供依赖。1vC无知人生

deploy-完成集成和发布工作,将最终包复制到远程仓库以便分享给其他开发人员。1vC无知人生

site(站点)1vC无知人生

pre-site- 执行一些生成项目站点前的准备工作。1vC无知人生

site- 生成项目站点的文档。1vC无知人生

post-site- 执行需完成站点生成的工作,如站点部署的准备工作。1vC无知人生

site-deploy- 向制定的web服务器部署站点生成文件。1vC无知人生

Maven生命周期参考:Apache Maven Project ,书籍《Maven In Action》1vC无知人生


1vC无知人生

本文为转载文章,版权归原作者所有,不代表本站立场和观点。

很赞哦! () 有话说 ()