一  下载maven

官网地址: http://maven.apache.org/download.cgi

如图:

可以下载历史版本。

二 windows下maven配置

1. 解压下载后的包,解压后多出一个文件

2. 配置环境变量

“计算机”--》右键,选择--"属性"--》"高级系统设置"--》"高级"--》"环境变量"--》"新建"--》"确定"

注意:

变量名: MAVEN_HOME(名字任意,用大写)

变量值: E:\Java\apache-maven-3.0.5(maven所在目录,禁止使用中文目录)

以上配置完后,还需要配置path路径,找到path,点击编辑,加上%MAVEN_HOME%\bin,如果不是处于结尾,需要加分号' ; '

如果只是配置完MAVEN_HOME,忘记配置path了,如下图进入,需配置path,将%MAVEN_HOME%\bin配置。

3. mvn -v 测试是否配置成功

cmd命令窗口,输入mvn -v,如果出现如下效果,说明maven配置成功。

如图:

4. 将apache-maven-3.3.9\conf下的settings.xml复制到C:\Users\Administrator\.m2下,覆盖掉settings.xml

注: maven默认情况下从C:\Users\Administrator\.m2下的settings.xml文件寻找依赖,如果使用集成工具,

比如eclipse,配置maven时,可以直接使用apache-maven-3.3.9\conf下的settings.xml,就无需使用默认。

maven下settings.xml位置:

.m2下settings.xml位置,同时在该目录下建一个repository作为本地仓库文件,建完后是空的,稍后分析。

三 maven构建项目

以下实例为了更好的分析maven项目结构,未使用集成工具,比如eclipse等。

1. maven项目结构

2. 在windows工作空间新建如下Hello项目

在Hello下,新建src和pom.xml同级:

关于src下的main和test目录如下:

在main的Java下,新建com/lanhuigu/maven,以及在test的java下,新建com/lanhuigu/maven文件级别目录

3.  源码创建

在Hello\src\main\java\com\lanhuigu\maven下新建Hello.java文件,

Hello.java内容如下:

  1. package com.lanhuigu.maven;
  2. public class Hello {
  3. public String sayHello(String name) {
  4. return name;
  5. }
  6. }

在Hello\src\test\java\com\lanhuigu\maven下新建HelloTest.java文件,

HelloTest.java内容如下:

  1. package com.lanhuigu.maven;
  2. import org.junit.Test;
  3. public class HelloTest {
  4. @Test
  5. public void testHello () {
  6. Hello hello = new Hello();
  7. String str = hello.sayHello("testMaven");
  8. System.out.println(str);
  9. }
  10. }

4. pom.xml中内容如下:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.lanhuigu.maven</groupId>
  6. <artifactId>Hello</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>Hello</name>
  9. <dependencies>
  10. <dependency>
  11. <groupId>junit</groupId>
  12. <artifactId>junit</artifactId>
  13. <version>4.10</version>
  14. </dependency>
  15. </dependencies>
  16. </project>

以上在工作空间中创建了Hello项目,在Hello下新建了src,pom.xml文件,

在src下建立main,test,分别在main和test下新建java,resources,然后

分别建立文件路径,增加Hello.java和HelloTest.java源码,以及配置pom.xml文件,

如此,Maven项目Hello建立完成。

四 mvn命令使用

1. 命令

常用命令:

mvn compile (编译)

mvn test (运行测试代码)

mvn clean (清除)

mvn install (安装)

mvn package (打包)

组合命令:

mvn clean test

mvn clean install

mvn clean package

2. cd 到Hello项目

3. 执行mvn compile命令,然后等待下载mvn相关jar包,以及pom.xml配置的依赖junit包

一定要保证联网,并且网速别太次,否则下载失败。

下载完成后如下效果:

当mvn compile命令执行完成后,我们可以在Hello项目下看到多了一个target文件:

target里面的内容,一个存放xxx.class字节码文件,一个是maven状态:

这个时候我们再看看C:\Users\Administrator\.m2下的repository文件中多了什么东西?

如下,里面的东西都是mvn compile编译时从网上下载的相关依赖:

我们可以看到,在mvn compile编译的时候,下载的依赖jar包等都在这个仓库中。

既然mvn compile执行完了,再试试mvn test命令,效果如下:

Hello项目下target包内容:

我们也可以执行mvn package命令打包,注意观察Hello下的target目录文件的变化,

java项目生成jar包,如果是web项目,生成war包。

五 maven依赖分析

以上我们完成了maven项目创建,可以通过命令编译,调用测试代码,打包等。

我们还需要分析以下几个问题:

1. 为什么默认情况下使用的是C:\Users\Administrator\.m2下settings.xml文件,

而不是E:\java\apache-maven-3.3.9\conf下的settings.xml文件,

依赖jar包下到了C:\Users\Administrator\.m2\repository中,而不是别的地方??

在settings.xml文件中,打开,可以看到如下内容:

如果不指定本地仓库位置,默认使用位置为${user.home}/.m2/repository,所以就是我们一直讨论的c盘下.m2文件下。

如果我们不想把仓库放在.m2下,我们需要做这样的配置:

2. pom.xml中的配置都是什么含义?

3. 为什么在HelloTest.java中能够使用@Test测试代码,也就是怎么使用上junit包的?

在HelloTest.java中,@Test引用的是import org.junit.Test;导入的是junit包,

程序运行时,根据pom.xml中

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
        </dependency>
</dependencies>

groupId+artifactId+version从.m2/repository仓库中找到junit-4.10.jar包。

maven(2)------maven构建项目的更多相关文章

  1. Jenkins中maven的作用--构建项目(三)

    本文主要根据Jenkins上的日志来继续说明构建项目的过程,上文我们已经讲到构建一个测试环境或单独终端的过程,详情可以了解上篇文章 一.背景介绍 首先看下SVN代码的仓库的结构: 代码仓库里有一个文件 ...

  2. maven 学习---Maven构建自动化-Hudson

    建立自动化定义场景,依赖项目建设过程中被启动,一旦项目生成成功完成,以确保相关的项目是稳定的. 实例 考虑一个团队正在开发一个项目总线核心API上的其他两个项目的应用程序,网页UI和应用程序的桌面UI ...

  3. Maven构建项目后项目报Error错误Java compiler level does not match the version of the installed Java project fac

    项目->右键->Project Facets->修改facets中Java版本(下拉箭头出)为要用的版本 Maven构建项目需注意 1.项目右键->Preferences-&g ...

  4. Maven学习3-使用Maven构建项目

    转自:http://www.cnblogs.com/xdp-gacl/p/4240930.html maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项 ...

  5. Maven学习总结(三)——使用Maven构建项目

    maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使用maven构建项目的过程. 一.构建Java项目 1.1.创建Java Project 1.使用mvn archet ...

  6. 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)

    [项目管理和构建]十分钟教程,eclipse配置maven + 创建maven项目(三) 上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合 ...

  7. Maven构建项目速度慢问题解决

    Maven项目进行构件的时候速度会很慢,由于maven每次进行创建的时候回去网上下载artheType-catalog.xml文件,而且,现在这个文件比较大,已经接近5M的大小,所以,在网速不好的情况 ...

  8. 转】Maven学习总结(三)——使用Maven构建项目

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4240930.html 感谢! maven作为一个高度自动化构建工具,本身提供了构建项目的功能,下面就来体验一下使 ...

  9. springboot+maven快速构建项目

    最近公司运用springboot构建项目,确实比ssh搭建要快很多.springboot官方学习网站 1.首先要下载maven,用maven管理项目很方便,下载完maven配置好环境,maven我就不 ...

  10. Maven学习-构建项目

    创建项目 运行如下命令会创建一个简单的Maven项目. mvn archetype:create -DgroupId=com.netease.learn -DartifactId=simple -Dp ...

随机推荐

  1. Linux学习笔记——Ubuntu更新软件源

    0.前言     通过改动ubuntu软件源可提高apt命令下载安装软件的速度.     參考资料     [官方资料]--配置文件改动方法     [Ubuntu如何改动软件源地址]--使用ubun ...

  2. cmd命令怎么玩

    1.两种进入cmd窗口方式: 1)win+R,出现运行窗口,输入cmd按回车 2)点击开始旁边的搜索文件和程序框按钮(Cortana),输入cmd按回车 2.常用命令        执行运行 comp ...

  3. 用jquery写的校验用户名

    $(function(){ $("input[name='username']").blur(function(){ var uname = $(this).val(); cons ...

  4. MyEcplise安装Freemarker插件(支持.ftl文件)

    1.下载插件:http://sourceforge.net/projects/freemarker-ide/?source=typ_redirect 2.下载freemarker-2.3.19.jar ...

  5. PHP-中文在计算机中的存储

    经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312. ● 为什么有这么多编码? ...

  6. 学习Tkinter

    tutorial point这个网站教程很多,无所不包.还包括一堆在线IDE,值得收藏 一.第一个tkinter程序 import tkinter top = tkinter.Tk() # Code ...

  7. JS中函数的 this 各种指向

    this是js的一个关键字,随着函数使用场合不同,this的值会发生变化.但是总有一个原则,那就是this指的是调用函数的那个对象. 情形1:如果一个函数中有this,但是它没有被上一级的对象所调用, ...

  8. 项目里面加入redis单机版 和集群版的配置

    第一步: 如果你是maven项目,你直接配置就可以了,如果不是需要下载这个包 jedis包 <!-- Redis  客户端 -->          <dependency>  ...

  9. List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac

    List多个字段标识过滤 class Program{  public static void Main(string[] args) { List<T> list = new List& ...

  10. RHCE7 管理II-2 通过grep使用正则表达式

    grep -i:忽略大小写 -n:表示行数 找出含有root的行 # grep root /etc/passwd root:x:::root:/root:/bin/bash ::operator:/r ...