`

1、Maven学习之Maven的概述

阅读更多


 Maven是目前用的最多的一个项目管理工具,他是apache的一个项目。先介绍一下maven的安装。

1、从maven网站下载合适的maven版本,这里下载的是3.0.5,网址如下:http://maven.apache.org/download.cgi  。下载截图:



 下载完成后,然后把apache-maven-3.0.5-bin.zip进行解压,然后把解压完成的文件夹拷贝到要安装maven的地方,这里我们直接安装在d盘的根目录。如下图所示:

 

然后把maven的安装目录放到windows的环境变量里。如下图所示:



 添加完成后,接着把mavenbin目录放到windows的path中。如下图所示:

完成以上的操作后,maven3.0.5就算安装完成了,这时打开命令窗口,在窗口中输入mvn -v,就可以查看maven的一些信息了,如下所示:(这里要确保java的环境变量已经设置,要是没有设置java环境变量,会出现错误,java环境变量设置网上多的是)

 

下面来了解一下maven的基本使用,从而对maven有一个直观的了解。

首先新建一个简单的maven项目,在电脑中的D般建立以下目录D:\item\maven\maven-ch01,建立安成后在maven-ch01目录下新建一个pom.xml文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<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>cn.szzx.maven</groupId>
  <artifactId>maven-ch01</artifactId>
  <version>0.0.1-SNAPSHOP</version>
 </project>

 然后在D:\item\maven\maven-ch01\src\main\java\cn\szzx\maven目录新建一个java文件,如下所示:

package cn.szzx.maven;
public class HelloMaven{
	public String sayHello(String name){
		return "hello:"+name;
	}	
}

 这时就可以对类HelloMaven进行编译了,编译的方法是,打开命令行窗口,进入项目maven-ch01所在的目录,在里面输入命令:mvn compile,如下图所示:

 

执行mvn compile后,maven会执行一些操作,这些操作主要是maven要从mvn仓库里下载一些compile所要依赖的包。并且对类HelloMaven进行编译,如下图所示:


 这时在项目maven-ch01目录下会多出一个文件夹target,如下图所示:

 

在目录target目录下有一个class目录里面存放了类HelloMaven.java的编译类HelloMaven.class文件,这个class文件是由mvn compile命令生成的。接着对类HelloMaven.java进行测试,在D:\item\maven\maven-ch01\src\test\java\cn\szzx\maven目录新建一个测试类TestHelloMaven.java的类,

代码如下:

 

package cn.szzx.maven;
import org.junit.*;
import static org.junit.Assert.*;
public class TestHelloMaven{
	@Test
 public void testSayHello(){
   
	HelloMaven hm = new HelloMaven();
   
	String str = hm.sayHello("maven");
   
	assertEquals(str,"hello:maven");
  
}	
}

 然后对项目maven-ch01执行测试,在命令行窗口中输入mvn test,这时会出现一个找不到junit的错误,如下图所示: 

 这是因为maven并不知道junit在什么位置,以及我们找junit的版本是什么,我们需要在pom.xml文件中使用dependencies对junit的信息进行配置,在dependency中指出了要加载的junit包的坐标,即名称与版本的信息。在这里面配制完成后,maven就知道程序在使用中要依赖这个jar包,然后会从mavn的仓库中去下载。如下所示: 

<?xml version="1.0" encoding="utf-8"?>
<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>cn.szzx.maven</groupId>
  <artifactId>maven-ch01</artifactId>
  <version>0.0.1-SNAPSHOP</version>
  <dependencies>
  		<dependency>
  			  <groupId>junit</groupId>
			  <artifactId>junit</artifactId>
			  <version>4.10</version>
  		</dependency>
  </dependencies>
  
 </project>

 上面的执行完成后,接着在命令行窗口中执行mvn test命令。这时就会出现如下所示,去仓库中下载junit去了。

 
 接着会下载一些别的东西,当所有的依赖下载完成后,就会出现如下所示内容: 
 

 代表执行了一个测试成功,并且没有错误。这时如果把测试代码修改成以下的内容。即画红的地方做了修改。然后再执行 mvn test ,



 这时会打印出出错的信息,以及出错信息所在的位置,如下所示:



 

这时会在D:\item\maven\maven-ch01\target\surefire-reports目录里有一个测试的报告,里面就写明了本次测试是否正确完成,如果没有,错误是什么,都会在这里面指出来。运行完成后在D:\item\maven\maven-ch01\target目录里就会多出一个压缩文件,如下图所示:



 它把项目mavn-ch01打成一个jar包。这个jar包在别的地方就可以使用。为了测试jar包的使用情况,这里接着建第二个mavn项目。其结构如下,在D:\item\maven\maven-ch02项目,然后在里面新建一个pom.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<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>cn.szzx.maven</groupId>
  <artifactId>maven-ch02</artifactId>
  <version>0.0.1-SNAPSHOP</version>
  <dependencies>
  		<dependency>
  				  <groupId>junit</groupId>
					  <artifactId>junit</artifactId>
					  <version>4.10</version>
  		</dependency>
  </dependencies>
  
 </project>

 然后新建一个Hello.java的类,内容如下:

package cn.szzx.maven.ch02;
import cn.szzx.maven.HelloMaven;
public class Hello{
	public String say(String name){
		 HelloMaven hm = new HelloMaven();
			return hm.sayHello(name);
		}	
}

 

然后在命令行中转到mavn-ch02目录,执行命令mavn compile命令,会出现错误,提示找不到类HelloMaven类的错误,如下所示:



 这时在项目maven-ch02的pom.xm文件中加入对maven-ch01项目依赖的jar包代码,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<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>cn.szzx.maven</groupId>
  <artifactId>maven-ch02</artifactId>
  <version>0.0.1-SNAPSHOP</version>
  <dependencies>
  		<dependency>
  				  <groupId>junit</groupId>
					  <artifactId>junit</artifactId>
					  <version>4.10</version>
  		</dependency>
  		<dependency>
  				  <groupId>cn.szzx.maven</groupId>
					  <artifactId>maven-ch01</artifactId>
					  <version>0.0.1-SNAPSHOP</version>
  		</dependency>
  </dependencies>
  
 </project>

 然后把项目maven-ch01的jar包安装到本地的maven仓库中,在命令行中,转到maven-ch01目录,然后执行mvn install,如下图所示:



 

这样就可以把mavn-ch01项目的jar包就可以放到mavn本地库中,maven本地仓库默认在以下目录里。如下图所示:


 

上面的命令就可以把项目maven-ch01打成的包放到本地仓库里。这样接着回到maven-ch02目录接着执行命令mvn compile,这时就能正常通过。

 

有了这个功能后,以后所有的项目可以做成模块,然后再把这些模块打成jar,再依赖进别的项目。maven给我们带来很大的好处。并且我们不需要在maven中引入jar包,

 

 

 

接着我们使用 mvn package 命令,直接在命令提示行中输入这个命令就可以了。这个命令可以把我们的项目打成一个包,maven运行时它是先编译,然后测试,然后才进行打包。

 

在一个公司中,如果把项目放在svn上,公司来了个新员工,那么他需要从svn上把项目弄下来,然后再进行,配置,如果我们有了mavn,就不需要这样做了,mavn就直接帮我们做了这些。

 

 

 

mvn compile 编译

mvn test 测试

mvn install 安装jar包到本地仓库

mvn clean 清除日志。

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 30.2 KB
  • 大小: 51.6 KB
  • 大小: 43.8 KB
  • 大小: 43.1 KB
  • 大小: 34.1 KB
  • 大小: 28 KB
  • 大小: 40.7 KB
  • 大小: 45.5 KB
  • 大小: 37.3 KB
  • 大小: 45.3 KB
  • 大小: 31.7 KB
  • 大小: 13 KB
  • 大小: 35.6 KB
  • 大小: 82.4 KB
  • 大小: 37 KB
  • 大小: 34.3 KB
  • 大小: 62.2 KB
分享到:
评论

相关推荐

    1. Maven概述.pdf

    Maven 的作用如下: Maven 统一集中管理好所有的依赖包,不需要程序员再去寻找。 项目中依赖的第三方组件,Maven 可以轻松解决重复和冲突问题。 Maven 作为一个开放的架构,提供了公共接口,方便同第三方插件集成。...

    maven window下安装包

    第1章:Maven概述/1.1 Maven的概念 第1章:Maven概述/1.2 Maven的功能 第1章:Maven概述/1.3 与其它构建相比/1.3.1 Make 第1章:Maven概述/1.3 与其它构建相比/1.3.2 Ant 第2章:Maven的安装/2.1 Window下的安装 第2...

    1-Maven概述

    NULL 博文链接:https://hdzhangyanfeng.iteye.com/blog/2029015

    Maven+Hibernate+Spring+Spring MVC开发新闻发布系统

    第1课 Maven 概述及安装 第2课 使用Maven构建Java项目 第3课 理解Maven核心概念(一) 第4课 使用Maven核心概念(二) 第5课 使用Maven创建web项目 第6课 使用Maven构建多模块项目(一) 第7课 使用Maven构建多模块...

    基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台

    使之提供更加高效和友好的用户接口,越来越多的企业和开发人员选择使用富客户端技术构建商业应用,本课程主要是介绍了解最流行的富客户端框架jquery - easyUI API及熟悉掌握其高级特性,并结合SSH2框架与Maven实现...

    maven的设置和介绍

    1. Maven概述 Maven是一个项目管理工具,包含:项目对象模型(POM, Project Object Model),标准集合,项目生命周期(Project Lifecycle),依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段...

    maven-it-extension:实验性的JUnit Jupiter扩展,用于编写Maven插件的集成测试Maven扩展Maven Core

    总体概述 当前,有关Maven插件/ Maven扩展等的集成测试的基本内容是,现有的解决方案不是基于Apache Maven项目悠久的开发历史而非常简洁和全面的。 一段时间内有很多不同的方法,但是从我的角度来看,它们都缺少一件...

    fileutils-maven-plugin

    目标概述fileutils-maven-plugin 提供了几个目标。 fileutils-maven-plugin:concatFileList 将文件内容连接到输出文件fileutils-maven-plugin:concatDirContent 将文件内容连接到输出文件fileutils-maven-plugin:...

    docker-maven-plugin

    目标概述 - 创建并启动 docker 容器 - 停止并移除 docker 容器 用法 为了使用 docker-maven-plugin,您需要将以下配置添加到您的 pom.xml 文件中。 [...] [...] [...] &lt; groupId&gt;...

    maven-tiles:通过组合而不是继承注入Maven配置

    Tiles Maven插件-版本2.19 概述tile-maven-plugin是一个Maven插件,它试图将对依赖项可用的合成也带到父结构。如何制作Maven Tile? 瓦片是,其中包含Maven POM的一部分; 每个图块都可以包含构建数据,例如公司要...

    MavenIn28Minutes, 面向初学者的Maven 教程.zip

    MavenIn28Minutes, 面向初学者的Maven 教程 面向初学者的 Maven 教程- In28Minutes示例课程的标题。课程概述课程步骤:期望值运行示例关于 in28Minutes我们的信念。我们的方法。找到我们。其他课程。安装 Eclipse 和

    docker-maven-plugin:不活跃:Docker的maven插件

    docker-maven-plugin 一个用于构建和推送Docker映像的Maven插件。... 这导致创建了用于构建映像的第二个Maven插件 ,出于dockerfile-maven的README中概述的所有原因,我们认为该插件提供了使用Maven处理Docker的更简

    maven-thrift-plugin:将 thrift 文件生成为源代码的 Maven Thrift 插件

    目标概述 generate-java绑定到 generate-sources 阶段,用于编译 thrift 文件。 generate-java-test绑定到 generate-test-sources 阶段,用于编译测试 thrift 文件。 执行参数 节俭可执行文件 指向thrift的路径,...

    artifactor-maven-plugin:artifactor-maven-插件

    Artifactor Maven 插件概述该插件的想法是基于客户的联系,该客户有非常特殊的要求。 该插件将分析React器构建顺序,并将创建一个文件夹结构,其中包含来自React器内的一个或多个工件,它们的依赖关系的正确顺序。 ...

    maven-code-quality-pom:使用此Maven POM使用JUnit,JaCoCo,Hamcrest,FindBugs,PMD,CodeNarc,Checkstyle(Google),Enforcer,Duplicate-Finder,JDepend等来增强和报告代码质量

    1.概述 通过以下方式增强和报告代码质量: Checkstyle的与谷歌的Java编码标准( ) CodeNarc ( ) 重复查找器( ) Enforcer ( ) FindBugs ( ) fmt-maven-plugin使用,该遵循( ) JDepend ( ) 的...

    dart-maven-plugin:用于构建Google Dart项目的Maven插件

    #Maven Dart插件 Dart Maven插件可将Google Dart集成到Maven构建过程中。 它查找带有文件夹 #Changenotes ### 3.0.0 dart:dart2js现在可以跨threadCount并行编译多... #目标概述 Dart插件有一个目标(帮助目标除外

    docker-maven-plugin:用于运行和创建Docker映像的Maven插件

    是此插件功能的高级概述,并提供了一个使用示例。 提供的目标和可能的配置参数。 在samples/下面,并包含示例设置,您可以将它们用作自己项目的蓝图。 具有此插件的发行历史。 说明了如何为该项目做出贡献。 ...

    mvnd:Maven守护程序

    架构概述: mvnd嵌入了Maven(因此无需单独安装Maven)。 实际的构建发生在一个长期存在的后台进程(又名守护进程)中。 一个守护程序实例可以处理来自mvnd客户端的多个连续请求。 mvnd客户端是使用构建的本机...

Global site tag (gtag.js) - Google Analytics