maven使用入门

来源:互联网 发布:淘宝最贵的商品 编辑:程序博客网 时间:2024/05/01 01:23

maven是一个工具,主要是用来对Java项目进行构建(编译、测试、打包等)和依赖管理,它能够用简单的命令来构建项目,还能通过配置的方式自动下载项目依赖的jar包。

本篇和大家一起来讨论maven的基本用法。

创建maven项目

打开eclipse,new=>project=>maven project=>next,不要勾选create a simple project,保持默认,=>next,默认选中quickstart模板,=>next,输入group id和artifact id,然后version和package保持默认即可,properties暂不填写,=>finish。maven项目创建完成了

maven项目的目录结构

下面是maven项目的经典目录结构

pom.xmltarget    classes    test-classessrc    main        java    test        java

pom.xml是maven中的配置文件,pom(project object model)文件定义了该项目的坐标(坐标的概念下面会讲到),依赖项等内容。target目录下放置的是对项目打包后的文件。src目录中存放的是源代码,main目录中存放的是主代码,test中存放的是单元测试代码。main和test中的java目录中存放的是java代码。

这个项目结构对maven的构建非常重要,一定要遵守。

这个项目模板包含一个App.java,该类包含一个main方法。还包含一个AppTest.java,该类是用来对App.java做单元测试的。

依赖管理与坐标

一个项目一般都会依赖很多jar包,如果每个包都要到对应的官方网站上下载和存放,显然比较麻烦,maven受欢迎的一个重要愿意就是它把依赖管理做的很好。maven有一个庞大的中央仓库,里面存放的有各种各样的包,程序员只需要配置一下包的id,就可以将对应的包下载到本项目的特定位置。但是,怎样来唯一标识一个包呢?maven通过坐标来唯一标识一个包。在maven的世界里,每一个构件(包)都要明确定义自己的坐标。当你需要应用别的构件时,也只需要配置一下该构件的坐标即可。

下面是我刚才创建的项目的坐标。

<groupId>org.zdk.test</groupId><artifactId>maventest</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging>

groupId一般是当前项目隶属的大项目的名称,而artifactId则是当前maven项目的名称或当前模块的名称,这两个属性没有太严格的要求。version是当前的版本号(SNAPSHOT的快照意思,大概是说当前项目还正在开发,可能不稳定),packaging是当前项目的打包方式,默认值是jar。

下面是一个内容比较简单的pom.xml文件的内容。我加入了几个对SpringFramework包的依赖,是为了多用几个例子说明坐标的概念,而本篇文章并不涉及spring的内容。

<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>org.zdk.test</groupId>  <artifactId>maventest</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>jar</packaging>  <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  </properties>  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>3.8.1</version>      <scope>test</scope>    </dependency>     <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-core</artifactId>        <version>2.5.6</version>    </dependency>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-beans</artifactId>        <version>2.5.6</version>    </dependency>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context</artifactId>        <version>2.5.6</version>    </dependency>    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context-support</artifactId>        <version>2.5.6</version>    </dependency>  </dependencies></project>

这个文件中,先通过groupId,artifactId和version来定义了当前项目的坐标,又在dependencies中依赖了好几个其它的构件。

maven常用命令

  • 编译 mvn compile
  • 测试 mvn test
  • 打包 mvn package
  • 安装到本地库 mvn install

以上四个命令有层次关系,也就是说,运行mvn test时,会先运行mvn compile,运行mvn package时,会先依次运行上面的两个命令,运行mvn install时,会先依次运行上面三个命令。

  • 清理 mvn clean
    清理就是删除生成的target文件夹。
    也可以将mvn clean命令同上面的四个命令写到一块执行,如下面的命令会先清理,然后再运行测试
mvn clean test

下面我们来运行几个命令。首先启动一个命令行工具,然后定位到你的项目的根目录(根目录就是pom.xml所在的目录)。我本地的项目存在于E:\JavaCode\maventest文件夹中,所以我需要先输入以下命令

e:cd E:\JavaCode\maventest

然后清理并打包

mvn clean package

maven会先清理target目录,然后编译、测试并打包。如果你看到最后输出的大概如下,则说明打包成功了

[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS[INFO] ------------------------------------------------------------------------

打开你根目录的的target文件夹,里面的东西就是maven生成的,包括一个jar包和几个文件夹。

以上就是maven最基本的使用方法,本文如有讲述不清的地方,请在下方的评论处留言。

0 0
原创粉丝点击