maven使用入门

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.xml
target
    classes
    test-classes
src
    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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值