首页 > 代码库 > Maven入门使用(一)

Maven入门使用(一)

一、什么是maven

一般认为maven是项目构建工具+依赖管理工具+项目信息管理工具。

maven是一个强大的构建工具,能够帮助我们自动化构建过程。

清理、编译、测试、生成报告、打包、部署都是可以通过maven自定义的命令一步完成,不需要我们一步步去手动执行。

同时,maven也帮助我们标准化构建过程。如果手动构建,一千个程序员就有一千种构建方式,这给团队合作带来很大的不便。

最后,maven是跨平台的,对外它提供了一致的接口。不管你是在Windows 还是Linux下,使用的maven命令都是一样的。

 

maven还是一个强大的依赖管理工具。以前我们做项目时候,通常需要去网上下载无数个jar包,包含到我们的编译路径中。

然而在项目合作中,很难保证每一个程序员下载的jar包一致(版本号不一致是最常见的)。

混乱的jar包导致开发过程出现各种奇怪的问题(最常见的就是工程在你的电脑上跑是ok的,在另外一个人的电脑上跑是failed)。

而maven终结了这一混乱。maven提供了远程仓库,你只要提供jar包的groupId,artifactId和version,就可以下载到想要的jar包。

借用数学中的三维坐标系,maven远程仓库使用groupId,artifactId和version来构建jar包的三维坐标系。

 

最后maven还是一个项目信息管理工具。

maven帮助我们管理原本分散在项目中各个角落的项目信息,包括项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等。

通过maven我们可以轻松地获取我们想要的信息。

 

二、maven的简单使用

在maven官网中,有一个maven快速入门使用的介绍,官网5分钟入门。

翻译成中文就是:

1、生成一个典型的maven项目

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

上面命令行中,groupId表示该maven项目隶属的项目名;artifactId表示当前maven项目的构建名(当前maven项目的名字,这里是my-app);

archetypeArtifactId表示maven项目的类型;interactiveMode表示交互方式,如果是false就表示不需要一步步交互。

2、进入生成的项目中

cd my-app

我们可以看到一个标准的项目结构

my-app
|-- pom.xml
`-- src
    |-- main
    |   `-- java
    |       `-- com
    |           `-- mycompany
    |               `-- app
    |                   `-- App.java
    `-- test
        `-- java
            `-- com
                `-- mycompany
                    `-- app
                        `-- AppTest.java

其中,src/main/java目录下包含了所有的源码,src/test/java目录下则是所有的测试代码。

根目录下的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">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>Maven Quick Start Archetype</name>
  <url>http://maven.apache.org</url>
 
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

3、构建项目

mvn package

使用上面的命令我们就对my-app进行了构建。

可以从命令行中可以看到mvn package其实执行了很多步步骤,其中包括resource、compile、testResource、testCompile、test等。

 

Maven入门使用(一)