wex5可以做网站吗,上网站建设公司,在线crm系统功能模块分析,贷款网站平台有哪些前言 
今天就来聊聊Maven的基础和一些比较概念性的东西#xff0c;还有一些常用的Maven命令啥的#xff0c;主要是某人脑子记不住#xff0c;记在博客中让她自己看吧#xff0c;省的费心给她找。 
后续的文章会聊到Maven的一些比较高级用法#xff0c;像自定义插件#x…前言 
今天就来聊聊Maven的基础和一些比较概念性的东西还有一些常用的Maven命令啥的主要是某人脑子记不住记在博客中让她自己看吧省的费心给她找。 
后续的文章会聊到Maven的一些比较高级用法像自定义插件私服啥的欢迎各位大佬来讨论哦 
概念 
Maven 是一个项目管理和整合工具。Maven 为开发者提供了一套完整的构建生命周期框架。开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置因为 Maven 使用了一个标准的目录结构和一个默认的构建生命周期。 
在有多个开发团队环境的情况下Maven 能够在很短的时间内使得每项工作都按照标准进行。因为大部分的工程配置操作都非常简单并且可复用在创建报告、检查、构建和测试自动配置时Maven 可以让开发者的工作变得更简单。 
Maven 的主要目的是为开发者提供 
一个可复用、可维护、更易理解的工程综合模型与这个模型交互的插件或者工具
Maven 工程结构和内容被定义在一个 xml 文件中即谈到的pom.xml 
安装配置 
Maven 是一个基于 Java 的工具所以要做的第一件事情就是安装 JDK。 
官网下载后解压即可一般都是在开发工具里面配置Maven的位置就可以了如果喜欢敲命令的话那就添加一下环境变量。 
然后配置一下本地仓库地址和镜像仓库提供一下示例 maven下载地址Maven – Download Apache Maven  
JDK原生打包 
在Maven工具出现之前基本上用的都是Ant打包构建项目工具打包由于现在Maven越来越流行使用Ant打包的项目就越来越少了这些工具基本上都是通过对JDK原生打包的方式进行了一层封装编译打包底层还是基于JDK带有的工具实现的。 
现有一个demo测试项目结构路径如下 我们进入到这个src的目录里面使用命令进行编译 编译好后就可以进行打包成jar包文件了jar文件又分为两种一种是直接被引用的jar包另外一种是可以直接执行的可执行jar包打包命令如下 这时打的包仅是一个普通的jar包如果要打成可执行包的话那么就得引用一个MANIFEST.MF文件了JDK也是根据这个文件加载相关的类信息的新建一个manifest.txt文件内容如下每个冒号后面都需要有空格每行都需换行 Manifest-Version: 1.0 Created-By: 1.8.0_101 (Oracle Corporation) Main-Class: com.compile.App 执行一下命令 这样打出来的jar包就是可执行包啦。使用以下命令启动jar包 java -jar compile.jar 使用Maven打包 
我们需要创建一个Maven Project项目我们这里使用quickstart原型快速创建 创建好后再pom.xml里面的build标签里面添加Maven打包插件如果不需要可执行jar包的话把configuration标签去掉就好了 POM结构 
先放在这里起码有个概念会在后面的博文中讲到 Maven项目结构 
项目结构是一个约定好了的目录如果有些改动的话可能项目都不能正常运行或打包博主碰到过一次贼难受 
约定的目录不可改 src/main/java –存放项目的.java文件  src/main/resources –存放项目资源文件。比方SpringMybatis配置文件  src/test/java –存放全部测试.java文件比方JUnit測试类  src/test/resources ---测试资源文件  target ---项目输出位置,编译完毕后的东西放到这里面  pom.xml 
Maven生命周期 
在 Maven的的生命周期里面理想的标准构建流程为清理-编译 - 测试 - 报告 - 打包 - 部署。并且在一个pom.xml里面全部搞定 
而Maven只是一个抽象规范流程每个周期里面的流程是有具体的插件来执行的 而每个生命周期的预设如下 
阶段处理描述验证 validate验证项目验证项目是否正确且所有必须信息是可用的编译 compile执行编译源代码编译在此阶段完成测试 Test测试使用适当的单元测试框架例如JUnit运行测试。包装 package打包创建JAR/WAR包如在 pom.xml 中定义提及的包检查 verify检查对集成测试的结果进行检查以保证质量达标安装 install安装安装打包的项目到本地仓库以供其他项目使用部署 deploy部署拷贝最终的工程包到远程仓库中以共享给其他开发人员和工程
运行任何一个阶段都会从其所在生命周期的第一个阶段开始顺序执行到指定的阶段如 
mvn package  --- 本义执行default周期的package阶段maven会自动从process-resources阶段开始运行到package阶段结束 
Maven插件 
插件plugin是绑定到生命周期承担实际功能的组件。mvn运行时自动关联插件来运行 
下图是maven默认的各阶段对应的插件列表 生命周期  生命周期阶段  插件目标  执行任务  clean  pre-clean        clean  maven-clean-plugin:clean  删除项目的输出目录。    post-clean      site  pre-site          site  maven-site-plugin:site      post-site        site-deploy  maven-site-plugin:deploy    default  process-resources  maven-resources-plugin:resources  复制主资源文件至主输出目录    compile  maven-compiler-plugin:compile  编译主代码至主输出目录    process-test-resources  maven-resources-plugin:testResources  复制测试资源文件至测试输出目    test-compile  maven-compiler-plugin:testCompile  编译测试代码至测试输出目录    test  maven-surefire-plugin:test  执行测试用例    package  maven-jar-plugin:jarejb:ejb jar:jar rar:rar war:war  创建项目jar包    install  maven-install-plugin:install  将项目输出构件安装到本地仓库    deploy  maven-deploy-plugin:deploy  将项目输出构件部署到远程仓库 
Maven常用命令 
mvn clean  执行清理阶段生命周期 
mvn compile 执行编译阶段生命周期 
mvn package 执行打包阶段生命周期 
mvn install 安装jar到本地库 
mvn dependency:tree 将当前项目pom.xml中引入的依赖打印出来