Maven简介、配置与创建

Maven简介

什么是Maven

Apache Maven是一个软件项目管理和构建工具,可以帮助我们创建和管理项目

基于项目对象模型POM(Project Object Model)的概率,帮助开发者构造一个项目的完整生命周期

注:POM是Maven对一个项目的描述,是Maven的核心,一个POM其实就是一个XML文件

为什么使用Maven

项目的管理工具

项目规则很大时一定会将项目进行拆分,将一个项目拆分成多个模块,每个模块对于一个工程,多个工程之间存储依赖关系

此时可以使用Maven的依赖管理机制,帮助我们在项目与项目之间建立依赖关系

Jar包管理的工具

  • 通过仓库管理Jar

    多个项目可能会用到相同的Jar包,每个项目都要导入Jar包,太繁琐了

    此时就可以通过Maven,将Jar包放入Maven仓库中,在项目中引用仓库中的Jar包

  • 解决Jar包的依赖

    Jar包之间存在依赖关系,并且依赖层次很复杂,很难记住

    此时可以使用Maven,帮助我们自动解决Jar包之间的依赖关系

  • 自动下载jar包

    项目中使用的jar数据很多,自己下载并手动添加jar包,很麻烦

    此时可以使用Maven,帮助我们自动下载所以相关的jar包

自动化的构建工具

构建过程:编译主代码——>编译测试代码——>执行单元测试——>生成测试报告——>打包——>部署

术语

中央仓库

是一个网络仓库,存储jar包和maven插件

repo.maven.apache.org(地址)

本地仓库

从中央仓库下载的jar包的存放位置,也是一个仓库,只不过存放在本地电脑上

镜像仓库

对某一仓库做的镜像

http://maven.aliyun.com/nexus/content/groups/public/

私服

局域网内部搭建的maven服务器

单词了解

repository 仓库

archetype 原型,骨架(模板)

artifact 手工制品,成品(项目/jar/war)

安装Maven、配置Maven

下载安装包

maven3.2.5版本要求jdk1.6,其后的版本至少要求jdk1.7

解压缩

解压到无中文,无空格的文件下,不需要安装

配置环境变量

Maven依赖与JAVA_HOME

echo %JAVA_HOME%   (查询JDK)

Maven环境变量:

  • MAVEN_HOME=Maven的安装目录 (或者M2_HOME=Maven的安装目录)

  • Path=原Path;%JAVA_HOME%\bin 或者直接复制Maven中bin文件的路径

环境测试

在Doc中执行: mvn -version

成功界面:

C:\Users\Administrator>mvn -version
Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-15T01:29:23+08:00)
Maven home: F:\Learning software\apache-maven-3.2.5\bin\..
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_121\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"

配置本地仓库

本地仓库的默认位置

C:\Users\Administrator.m2\repository(这是我自己的)

~/.m2/repository (~波浪线代表主目录)

修改本地仓库的位置

编辑maven解压包里conf/setting.xml

然后在53行的注释之后,也就是55行添加

<localRepository>F:\xxxxx</localRepository>

然后保存

创建项目测试(可以放在配置镜像仓库后面进行,比较快)

测试:

在DOC命令中找到对应的存放文件输入:mvn archetype:generate 创建文件 (这步可以放在2.6配置镜像仓库之后,会比较快)

在doc中输入以下代码:

cd maven/maven-projects (根据自己的路径选择)
mvn archetype:generate  #创建maven项目

提示:

  • 选择创建项目时使用的模板archetype(1-10):按回车 (7是最简单java项目,web项目是10)
  • 输入groupID,一般为组织域名反向+项目名:com.abidu.ljy
  • 输入artifactID(模块ID):xxx
  • 版本:可以自己修改也可以默认 回车
  • 包名:默认和groupID一样
  • 确认:直接回车

配置镜像仓库

编辑maven解压包里conf/setting.xml

在152行左右找到mirror标签 然后在注释外边(158左右)加入以下代码:

 <mirror>
      <id>alimaven</id>
      <mirrorOf>*</mirrorOf> <!-- 这个*表示所有访问都是要该镜像仓库 -->
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

配置Maven的JDK版本

默认使用maven创建的项目使用的是jdk1.5

修改maven默认使用的jdk版本,编辑maven解压包里conf/setting.xml 在182行(前面没有加本地路径和镜像仓库,加了之后在190左右)左右在profiles标签后面加入代码:

<profile>    
    <id>jdk-1.8</id>    
     <activation>    
     	<activeByDefault>true</activeByDefault>    
      	<jdk>1.8</jdk>    
      </activation>    
<properties>    
<maven.compiler.source>1.8</maven.compiler.source>    
<maven.compiler.target>1.8</maven.compiler.target>    
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
</properties>    
</profile>

创建Maven项目

Java项目的创建

目录结构

Java工程约定的目录结构如下:

|-项目名称
    |-src   //程序代码
    	|-main //程序主代码
    		 |-java //源代码
    			|-用于存放源代码,相当于传统项目的sec,如com.itany.usm.dao,UserDao
     		 |-resources(资源) //配置文件
    			|- 用于存放配置文件
  		|-test  //测试代码,目录结构与main中一样
    		|-java
    		|-resources
    |-pom.xml //maven核心配置文件

基本操作

步骤:

  • 创建Java项目
mvn archetype:generate
  • 指定的信息如下:
archetype:(maven-archetype-quickstart) # 使用骨架创建java项目
groupID:com.xxx.xx.  #指定组织域名反向+项目名
artifactId:sms #指定模块名称
Version:1.0.1 #版本
package:com.xxx.xx.	 #包名
  • 执行Maven操作

    cd xx //先切换到项目所在的目录
        mvn compile
        mvn clean compile test package  //可以同时执行多个命令
    

Web项目的创建

目录结构

Web项目的约定目录结构如下:

|-项目名称
    |-src   //程序代码
    	|-main //程序主代码
    		 |-java //源代码
    			|-用于存放源代码(相当于传统项目的sec,如com.itany.usm.dao,UserDao)
     		 |-resources(资源) //配置文件
    			|- 用于存放配置文件
             |-webapp //网站根目录(相对于传统web项目的WebRoot) 	
                 |-WEB-INF 
    				|-web.xml
  		|-test  //测试代码,目录结构与main中一样
    		|-java
    		|-resources
    |-pom.xml //maven核心配置文件

基本操作:

步骤:

  • 创建Web项目
mvn archetype:generate

指定的信息如下:

archetype:(maven-archetype-webapp) #使用模板创建web项目
groupID:com.xxx.xx.  #指定组织域名反向+项目名
artifactId:sms #指定模块名称
Version:1.0.1 #版本
package:com.xxx.xx.	 #包名
  • 执行maven操作

    mvn clean comile package(和上面java执行操作一样)
    
  • 发布

    方法1:使用外部的tomcat

    方法2:使用maven的tomcat插件

    mvn tomcat:run  #DOC命令需要在根目录下运行
    

Mavne命令

常用命令

**(都要在目录下:mvn+xx) ** :可以一句执行多个命令,mvn xx xx (空格隔开)

命令 作用 描述
archetype 创建maven项目 根据模板生成项目骨架
clean 清理 删除target目录
compile 编译 将main中的源代码编译成字节码,放在target/classes目录下
test 测试 执行测试类(使用Junit),并且生成测试报告
package 打包 将java项目打包成jar文件,将web项目打包成war文件,放在target目录下
install 安装 将项目的jar包安装到本地仓库中,供其他项目使用
deploy 发布/安装 将项目的jar包安装到中央仓库中,供其他人使用,需要账户和密码(了解下就好了)
site 生成站点 生成一个关于项目介绍的网页

注意:

  • 所有的命令都要跟在mvn的后面,如 mvn archetype
  • 所以的命令都必须在某个项目的跟目录下执行
  • 多个命令可以一起使用,但中间需要空格隔开

生命周期

一个项目的构建build的过程通常包括:清理、编译、测试、打包、集成测试、部署等

Maven定义了三套生命周期:clean、default、site

每个生命周期之间是相互独立的,每一个生命周期内都包含多个阶段,这些阶段是有顺序的,后序的阶段必须等待前面的阶段执行后才能执行

比如default生命周期包含:compile、test、package

猜你喜欢

转载自blog.csdn.net/weixin_51418572/article/details/110501702