Maven|基础学习

概念

Maven是什么?

Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。

约定的目录结构

目录 功能
${basedir} 存放pom.xml和所有的子目录
${basedir}/src/main/java 项目的java源代码
${basedir}/src/main/resources 项目的资源,比如说property文件,springmvc.xml
${basedir}/src/test/java 项目的测试类,比如说Junit代码
${basedir}/src/test/resources 测试用的资源
${basedir}/src/main/webapp/WEB-INF web应用文件目录,web项目的信息,比如存放web.xml、本地图片、jsp视图页面
${basedir}/target 打包输出目录
${basedir}/target/classes 编译输出目录
${basedir}/target/test-classes 测试编译输出目录
Test.java Maven只会自动运行符合该命名规则的测试类
~/.m2/repository Maven默认的本地仓库目录位置

POM文件

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

POM 中可以指定以下配置:

  • 项目依赖
  • 插件
  • 执行目标
  • 项目构建 profile
  • 项目版本
  • 项目开发者列表
  • 相关邮件列表信息

POM文件的结构

1、模型版本

在Maven2和Maven3中,只支持4.0.0版本。

1
<modelVersion>4.0.0</modelVersion>

2、基本配置

1
2
3
4
5
6
7
8
9
<groupId>...</groupId> 
<artifactId>...</artifactId>
<version>...</version>
<packaging>...</packaging>
<dependencies>...</dependencies>
<parent>...</parent>
<dependencyManagement>...</dependencyManagement>
<modules>...</modules>
<properties>...</properties>

3、Build配置

1
2
<build>...</build>
<reporting>...</reporting>

4、环境配置

1
2
3
4
5
6
7
8
9
<issueManagement>...</issueManagement>
<ciManagement>...</ciManagement>
<mailingLists>...</mailingLists>
<distributionManagement>...</distributionManagement>
<scm>...</scm>
<prerequisites>...</prerequisites>
<repositories>...</repositories>
<pluginRepositories>...</pluginRepositories>
<profiles>...</profiles>

5、其他配置

1
2
3
4
5
6
7
8
<name>...</name>
<description>...</description>
<url>...</url>
<inceptionYear>...</inceptionYear>
<licenses>...</licenses>
<organization>...</organization>
<developers>...</developers>
<contributors>...</contributors>

关于具体的解释可以参考这里

实操

环境配置

下载地址

下载后解压到/usr/local目录下,并更改base_dir的name为maven

将以下内容添加到./bash_profile中。

1
2
3
4
MAVEN_HOME=/usr/local/maven
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME
export PATH