Maven

1.Maven简介

2.Maven入门

3.Maven配置

4.Maven整合Eclipse

5.Maven管理依赖和插件

 

一、Maven简介

1.项目开发遇到的问题

        项目构建:包括编译,运行测试,打包,部署,运行服务器等一系列操作,每个过程都相当繁琐.

        项目依赖:项目越来越大,需要的第三方工具包越来越多,第三方工具包又需要依赖其他jar包,维护项目的依赖以及管理依赖之间的关系需要耗费较大的精力.

2.Maven简介

       Maven属于Apache基金会的子项目,百度百科中的解释为:

     

       Maven是一个跨平台的项目管理工具.可以管理项目生命周期中的构建(编译,运行测试,打包,部署等)和项目的依赖(jar包),以及管理项目各个模块之间的依赖关系.

       使用Maven的好处:

       1、Maven能提供一种项目的配置,配置好的项目,只需要运行一条简单的命令,就能完成重复的,繁琐的构建动作

       2、Maven能提供一种项目的依赖配置,可以自动的导入项目依赖的jar,并且自动导入这些jar包依赖的第三方jar包

       3、Maven提供了一种标准的项目结构,测试命名规则等项目的最佳实践方案,统 一了不同项目的学习成本.

二、Maven入门

1.Maven的安装

      (1)Maven的下载

       http://maven.apache.org/download.cgi

       链接:https://pan.baidu.com/s/19zfGCPIhmwf2GH0HSbZqNQ 
       提取码:js3e 
     (2) 检查JDK安装的情况(需要1.6以上的版本):

       添加JAVA_HOME,需要指向JDK安装目录;

       添加PATH,添加%JAVA_HOME%\bin;

     (3)apache-maven-3.2.5-bin.zip解压到目录中(目录路径最好不要有空格和中文)

       目录介绍:

       bin:存放执行脚本文件的地方

       boot:存放一些扩展的地方,类加载的文件

       conf:maven的核心配置文件存放的路径

       lib:maven的依赖包

     (4)设置系统环境变量,MAVEN_HOME,指向maven的根目录

       

      设置环境变量Path,将%MAVEN_HOME%\bin加入Path中;

      

     (5)验证Maven安装

      打开cmd,输入mvn -version

      

2.Maven的目录结构

      Maven规定了一套标准的目录结构:   

      src/main/java —— 存放项目的.java文件

      src/main/resources —— 存放项目资源文件,如spring、struts2配置文件,db.properties

      src/main/webapp —— 存放jsp,css,image等文件

      src/test/java —— 存放所有测试.java文件,如JUnit测试类

      src/test/resources —— 测试资源文件

      pom.xml——主要要写的maven配置文件

      target —— 项目由maven自动输出位置

      

3.Maven入门案例

      (1)按照下面的结构创建一个目录结构

        --src

        ------main

        -----------java

        ------test

        -----------java

        --pom.xml

       (2)在src/main/java下添加类:(记得建包再建类)   

package com.xj.maven;
public class Hello {
	public String sayHello(String name){
		return "Hello Maven World!";
	}
}

      (3)在src/test/java下添加类:  (记得建包再建类)

package com.xj.maven;
import org.junit.Test;
import static junit.framework.Assert.*;
public class HelloTest {
	@Test
	public void testHello(){		
		Hello hello = new Hello();
		String results = hello.sayHello("World");
		System.out.println(results);		
	}	
}

         (4)编辑pom.xml    

<project xmlns="http://maven.apache.org/POM/4.0.0" 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 	http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.xj.maven</groupId>
	<artifactId>Hello</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>Hello</name>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>			
</dependencies>
</project>

      (5)切换到项目根目录下,运行命令窗口,分别执行下列命令并观察:(项目根目录-->Shift+右键-->在此处打开命令窗口)

       执行 mvn compile命令:编译项目

       执行mvn clean命令:清除字节码

       执行mvn clean compile命令:先清除字节码,在编译项目

       执行mvn test命令:执行测试

       执行mvn package命令:项目的打包:java项目-jar  Web项目-war

       执行mvn clean site命令:生成项目相关的网页

       执行mvn install命令:将项目打成的包安装到maven本地仓库中

三、Maven配置

1.Maven的仓库  repository

仓库类型

仓库名称

作用

本地仓库

本地仓库

相当于缓存,在电脑中为一个文件夹.工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。

第二次不需要从远程仓库去下载。先从本地库找,如果找不到才会去远程仓库找。

远程仓库

中央仓库

仓库中的jar包由专业团队(maven团队)统一维护。里面存放了全世界大多数流行开源软件jar包.为Maven默认的远程仓库.

 

私服

在公司内部架设一台服务器,存放所有需要的jar包,对外公开,供终端进行下载.

2.Maven配置本地仓库

       在Maven安装路径下,config文件夹中,修改settings.xml配置文件.

       配置localRepository标签的值.

     再执行命令,生成的就放在自定义的位置下面

3.Maven配置远程仓库镜像

       Maven默认的远程仓库,受网络的影响,不够便捷.于是可以使用国内的阿里云的Maven仓库作为中央仓库的镜像.

       配置方式可以在settings.xml的配置文件中配置mirrors标签.

	 <mirror>
		<id>nexus-aliyun</id>
		<mirrorOf>central</mirrorOf>
		<name>Nexus aliyun</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public</url>
	</mirror>

       其中各个标签的含义:

       id:当前镜像的唯一的标识

       name:当前镜像的名字,主要方便于开发者阅读.

       mirrorOf:为哪个远程仓库做的镜像.因为中央仓库的id为central,所以为中央仓库做镜像时,其值必须为”central”.

       url:阿里云Maven仓库的地址.

四、Maven整合Eclipse

1.Eclipse中配置Maven

       选择Window--->Preference--->Maven--->Add,添加本地安装的Maven

      勾选新添加的Maven

     选择User Settings,配置读取Maven配置文件的地址以及本仓库的地址.

2.JDK和JRE的更改

      选择Window--->Preference

    项目右键-->Build Path-->configure Build Path

3.创建java项目

     选择File--->New--->Project--->Maven Project,选择,Next,选中maven-archetype-quickstart,点击Next;

     录入groupId,artifactId和version,点击Finish.

    groupId,artifactId,version的录入原则:

    groupId翻译为组Id,通常的写法为公司域名的倒写,表示本项目属于哪个公司.

    artifactId翻译为手工艺品,表示项目的的名字或者模块的名字.

    Version通常为X.X.X格式,表示项目的版本号.

     :版本不用改动。坐标:用于唯一的约束当前项目在本地仓库的位置。创建好之后,不要改动

      

4.Maven导包

       https://mvnrepository.com/

     添加到pom.xml文件中之后,测试类不会报错

5.运行Maven命令

       右击项目,选择Run As 或者 Debug As,选择Maven build...,在Goals文本框中可以直接输入Maven的命令,但是不需要添加”mvn”的前缀,

6.创建web项目

      选择File--->New--->Project--->Maven Project,选择,Next,选中maven-archetype-webapp,点击Next;(使用骨架)

       

       以相同的原则录入groupId,artifactId,version,点击Finish

       注意:使用骨架床架出的项目结构,都是不是标准的Maven目录结构,需要添加缺失的文件

       还可以跳过骨架的选择创建,项目需要在点击Maven Project之后的对话框中勾选Create a simple project.(跳过骨架)       

      然后出了需要录入groupId,artifactId和version外,还需要选择packaing打包方式.如果是java项目则选择jar,如果创建的是web项目则选择war.

 五、Maven管理依赖和插件

1.管理项目的依赖

     (1)添加Maven依赖

      在项目的pom.xml文件中,添加<dependencies>标签,在标签中的每个依赖需要对应<dependency>标签.<dependency>标签中需要填写jar包坐标.(上面Junit导包就是远程仓库中下载jar包到本地,下面这个是导入别的项目的jar包,也就是本地仓库的jar包)

     (2)Maven的依赖范围

      依赖:项目需要依靠一个jar

      依赖范围:依赖一个jar,并不一定是在项目整个生命周期都需要它,可能只是在某一个阶段需要,那么依赖范围就是在定义在哪些阶段依赖这个jar

       A依赖B,需要在A的pom.xml文件中添加B的坐标,坐标除了上面写的,还有一个scope ,这是依赖的范围。

      scope有几个可选值, 如:

      1、compile: 默认值,表示编译依赖范围。即编译、测试、运行时都需要,会被打包。(默认值compile表明该jar一直全程存在/需要)

      2、test:表示测试依赖范围。即测试时需要,编译和运行时不需要,不会被打包。比如:junit。

     3、provided:表示已提供依赖范围。即编译、测试时需要,运行时不需要,不会被打包。比如:servlet-api和jsp-api被tomcat容器提供。

      服务器本身会提供这些jar,避免和服务器上的这些包冲突

      4、runtime:表示运行时提供依赖范围。即编译时不需要,运行和测试时需要,会被打包。比如:jstl、jdbc驱动。

      5、system:system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中JAR文件的路径,需要指定systemPath磁盘路径,system依赖不推荐使用。

      

2.管理项目的插件

        Maven创建的项目默认的JDK版本是1.5,可以使用Maven的编译插件改变项目的JDK版本.

        

        可以使用Maven的tomcat7插件作为项目的服务器,启动服务器之后,运行tomcat7:run即可.

        

       放到<build><plugins></plugins></build>标签里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值