Java框架(二)之Maven(介绍、安装配置、maven工程创建初步)

一、Maven介绍

1.项目开发遇到的问题

(1)同样的代码,在不同机器上运行的结果不一致
(2)在机器上可以正常打包,但是配置管理员打不出来
(3)项目组加入新成员,我需要告诉他编译环境如何让配置,但是我记不清数
(4)项目以来一些jar包,不知道放在哪里
(5)我开发的第二个项目,还是需要上面的jar包,再把复制到我当前的项目得到svn库里,第三次需要用,还要在复制吗?
(6)我写了一个数据库相关的通用类,并且推荐给了其他项目组,现在已经有五个项目组在使用它了,今天我发现了一个bug,并修正了它,我会把jar包通过邮件发给其他项目组
(7)项目进入测试阶段,每天都要向测试服务器部署一版。每次都手动部署

2.什么是maven

(1)是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
(2)Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。

3.maven主要功能

(1)项目构建(打包,部署)
(2)依赖管理(做好配置,自定义下载依赖)

4.什么是构建

  • 构建过程

构建过程

5.项目构建方式

  • Eclipse

手工操作较多,项目的构建过程都是独立的,很难一步完
成。比如:编译、测试、部署等。开发时每个人的IDE配置都不同,很容易出现本地代码换个地方编译就出错

  • Ant

Ant只是一个项目构建工具,它没有集成依赖管理。
Ant在进行项目构建时,它没有对项目目录结构进行约定,需要手动指定源文件、类文件等目录地址。同时它执行task时,需要显示指定依赖的task,这样会造成大量的代码重复。

  • Maven

Maven不仅是一个项目构建工具,更是一个项目管理工
具。它在项目构建工程中,比ant更全面,更灵活。
Maven在进行项目构建时,它对项目目录结构拥有约定,知道你的源代码在哪里,类文件应该放到哪里去。
它拥有生命周期的概念,maven的生命周期是有顺序的,在执行后面的生命周期的任务时,不需要显示的配置前面任务的生命周期。例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程

6.maven模型

在这里插入图片描述

二、maven安装配置

1.下载maven

官方网站:http://maven.apache.org

2.maven安装

第一步:安装jdk,要求1.6或以上版本。
第二步:把maven解压缩,解压目录最好不要有中文。
第三步:配置环境变量MAVEN_HOME
第四步:配置环境变量PATH,将%MAVEN_HOME%\bin加入Path中,在Windows中一定要注意要用分号;与其他值隔开。
第五步:验证是否安装成功,打开cmd窗口,输入mvn –v

3.maven的配置

Maven有两个settings.xml配置文件,一个是全局配置文件,一个是用户配置文件。

  • 全局配置

%MAVEN_HOME%/conf/settings.xml 是maven全局
的配置文件。
该配置文件中配置了本地仓库(依赖)的路径,默认就是:**/.m2/repository**。其中表示当前用户路径C:\Users[UserName]。
localRepository:用户仓库,用于检索依赖包路径

  • 用户配置

~/.m2/settings.xml是用户的配置文件

注意:一般本地仓库的地址不使用默认配置,通常情况下需要在用户配置中,配置新的仓库地址。

配置步骤如下:
第一步:创建一个本地仓库目录,比如E:// repository/maven。
/USERS/.m2/repository
第二步:复制maven的全局配置文件(.settings)到~/.m2目录下,即创建用户配置文件
第三步:修改maven的用户配置文件。

注意:用户级别的仓库在全局配置中一旦设置,全局配置将不再生效,转用用户所设置的仓库,否则使用全局配置文件中的默认路径仓库(全局:maven/conf/settings.xml 用户:用户:~/.m2/settings.xml )

三.创建maven工程

1.maven的工程结构

Project
|-src
| |-main
| | |-java —— 存放项目的.java文件
| | |-resources —— 存放项目资源文件,如spring, hibernate配置文件
| | |-webapp ———存放jsp,html,web.xml等网页文件 WebContent
| |-test 测试代码
| |-java ——存放所有测试.java文件,如JUnit测试类
| |-resources —— 测试资源文件
|-target —— 目标文件输出位置 如.class、.jar、.war文件
|-pom.xml ——maven项目核心配置文件

2.maven工程的创建

第一步:根据maven的目录结构创建HelloMaven工程
第二步:创建HelloWorld.java

package com.qf.maven;

public class HelloWorld {
	public String sayHello(String name){
		return "Hello World :" + name + "!";
	}
}

第三步:创建TestHelloWorld.java

package com.qf.maven;

import org.junit.Test;
import static junit.framework.Assert.*;

public class TestHelloWorld{
	
	@Test
	public void testSayHello(){
		HelloWorld hw = new HelloWorld();
		String result = hw.sayHello("zhangsan");
		assertEquals("hello zhangsan",result);
	}	
}

第四步:配置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">
  <!-- 版本:4.0.0 -->
  <modelVersion>4.0.0</modelVersion>
  <!-- 组织名称:暂时使用 组织名称+项目名称 作为组织名称 -->
  <!-- 组织名称:实际名称 按照访问路径规范设置,通常以功能作为名称:eg: junit spring -->
  <groupId>com.qf.maven</groupId>
  <!-- 项目名称 -->
  <artifactId>HelloWorld</artifactId>
  <!-- 当前项目版本号:同一个项目开发过程中可以发布多个版本,此处标示0.0.1版 -->
  <!-- 当前项目版本号:每个工程发布后可以发布多个版本,依赖时调取不同的版本,使用不同的版本号 -->
  <version>0.0.1</version>
  <!-- 名称:可省略 -->
  <name>Hello</name>
  
  <!-- 依赖关系 -->
	<dependencies>
		<!-- 依赖设置 -->
		<dependency>
			<!-- 依赖组织名称 -->
			<groupId>junit</groupId>
			<!-- 依赖项目名称 -->
			<artifactId>junit</artifactId>
			<!-- 依赖版本名称 -->
			<version>4.9</version>
			<!-- 依赖范围:test包下依赖该设置 -->
			<scope>test</scope>
		</dependency>		
		
	</dependencies>
</project>

3.maven的命令(重要的五个)

  • Mvn compile

执行 mvn compile命令,完成编译操作
执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。

  • Mvn clean

执行 mvn clean命令 执行完毕后,会将target目录删除。

  • Mvn test

执行 mvn test命令,完成单元测试操作
执行完毕后,会在target目录中生成三个文件夹:surefire、surefire-reports(测试报告)、test-classes(测试的字节码文件)

  • Mvn package

执行 mvn package命令,完成打包操作
执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war

  • Mvn install

执行 mvn install命令,完成将打好的jar包安装到本地仓库
的操作 执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用

猜你喜欢

转载自blog.csdn.net/xueer_z/article/details/82796148