【Maven】知识点总结

 

1.1      参考URL

http://www.cnblogs.com/xdp-gacl/tag/Maven%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93/

1.2      Maven是什么

Maven 是一个项目管理工具,它包含了

一个项目对象模型 (Project Object Model),

一组标准集合,

一个项目生命周期(Project Lifecycle),

一个依赖管理系统(Dependency Management System),

和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

 

项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。

Maven中使用约定,约定java源代码代码必须放在哪个目录下,编译好的java代码又必须放到哪个目录下,这些目录都有明确的约定。

Maven的每一个动作都拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程。只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮我们处理其他事情

  使用Maven可以进行项目高度自动化构建,依赖管理(这是使用Maven最大的好处),仓库管理。

 

1.1      Maven工程目录结构

1.1      Maven工具包目录结构

bin含有mvn运行的脚本

boot含有plexus-classworlds类加载器框架

conf含有settings.xml配置文件

lib含有Maven运行时所需要的java类库

LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍

 

1.1      Maven命令

mvn compile

mvn clean

mvn package

mvn install   =mvn compile+test+package

mvn clean compile    ---- 先清理再编译

 

1.1      创建Java工程

方法1:使用mvn archetype:generate命令,如下所示:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

方法2:使用mvn archetype:create命令,如下所示(推荐,速度快)

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

 

 

1.1      构建Java WEB工程

方法1:使用mvn archetype:generate命令,如下所示:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

 

方法2:使用mvn archetype:create命令,如下所示(推荐,速度快)

mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=myWebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

 

生成的目录结构如下

 

1.1      创建其他工程说明

mvn archetype:create或者mvn archetype:generate  固定写法

-DgroupId            组织标识(包名)

-DartifactId            项目名称

-DarchetypeArtifactId        指定ArchetypeId,

maven-archetype-quickstart,创建一个Java Project;

maven-archetype-webapp,创建一个Web Project

-DinteractiveMode   是否使用交互模式

 

  archetype是mvn内置的一个插件,create任务可以创建一个java项目骨架,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:

maven-archetype-archetype

maven-archetype-j2ee-simple

maven-archetype-mojo

maven-archetype-portlet

maven-archetype-profiles (currently under development)

maven-archetype-quickstart

maven-archetype-simple (currently under development)

maven-archetype-site

maven-archetype-site-simple

maven-archetype-webapp

  每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstart和maven-archetype-webapp骨架。

 

1.2      Pom.xml文件说明

1.2.1        项目坐标说明

  • groupId:组织标识(包名)
  • artifactId:项目名称
  • version:项目的当前版本
  • packaging:项目的打包方式,最为常见的jar和war两种

1.1.1        依赖配置

依赖范围scope用来控制依赖和编译,测试,运行的classpath的关系. 主要的是三种依赖关系如下:

 1.compile 默认编译依赖范围。对于编译,测试,运行三种classpath都有效

 2.test:测试依赖范围。只对于测试classpath有效

 3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无效。因为由容器已经提供,例如servlet-api

 4.runtime:运行时提供。例如:jdbc驱动

 

1.1      生命周期

Maven生命周期就是为了对所有的构建过程进行抽象和统一,包括项目清理,初始化,编译,打包,测试,部署等几乎所有构建步骤。

Maven有三套相互独立的生命周期:

1)Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

2)Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

3)Site Lifecycle 生成项目报告,站点,发布站点。

每套生命周期包含有若干个阶段。而平时在命令行输入的命令对应于一个特定的阶段。

Clean生命周期一共包含了三个阶段:

1)pre-clean 执行一些需要在clean之前完成的工作

2)clean 移除所有上一次构建生成的文件

3)post-clean 执行一些需要在clean之后立刻完成的工作

"mvn clean" 中的clean就是上面的clean。在一个生命周期中,运行某个阶段的时候,它之前的所有阶段都会被运行,也就是说,"mvn clean"等同于 mvn pre-clean clean ,如果我们运行 mvn post-clean ,那么 pre-clean,clean 都会被运行。这是Maven很重要的一个规则,可以大大简化命令行的输入。

其他的声明周期(Default LifecycleSite Lifecycle)跟上面类似,不再解释。

 

1.2      如何确定依赖JAR的ID信息

http://www.mvnrepository.com站点提供了针对 Maven 仓库的搜索接口,你可以用它来搜索依赖。样例如下:

 

转载于:https://www.cnblogs.com/clarino/p/8799668.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值