1.什么是Maven
我们要开发一个Java 项目,为了保证编译通过, 通常情况下会去寻找jar包,这样很容易造成项目的臃肿, maven提供了很好的项目开发规范与工具, maven 统一管理了jar包,接下来让我们来玩玩maven吧
2.安装Maven
Maven 是Apache 基金会的顶级项目, 我们可以从http://maven.apache.org/ 下载一个apache-maven-3.0.4-bin.zip 文件,将其解压到D:/maven 目录下
这里需要配置一下环境变量:
-
M2_HOME=D:/maven;
-
MAVEN_OPTS=-Xms128m -Xmx512m
以上M2_HOME 是必要配置的, 如果想要Maven跑的快一点, 可以根据自己的情况设置MAVEN_OPTS
现在我们可以打开cmd,输入:
mvn -v
看到一下信息说明 Maven 安装成功了
3.Maven 仓库
Maven给我们带来最直接的帮助就是jar 包得到了统一的管理, 这些jar包存在本地仓库,位于C:.m2目录下(也可以通过maven\conf\setting.xml 修改默认地址)
实际上本地仓库可以理解为缓存, 因为项目会先从本地仓库中获取jar包, 当无法获取指定jar包的时候,本地仓库会从远程仓库中下载jar包, 并放入本地仓库中,以备将来使用, 这个远程仓库是Maven官方提供的, 可以通过访问 (http://search.maven.org/ ),通过图A-1 可以清晰的表达项目,本地仓库,远程仓库之间的关系.
4.创建Maven项目
我们创建一个Java Web项目,在cmd 中输入:
mvn archetype:generate
我们创建的Java Web项目,所以可以选择maven-archetype-webapp, 通过maven可以知道以下信息:
-
项目groupId(组织名)-可输入com.smart 域名的反转
-
项目artifactId(构件名)-可输入smart
-
项目version(版本号)-可输入1.0
-
项目package(包名)-可输入com.smart
也可以使用IDEA 直接创建一个maven项目,只需要选择File-New-Project,如下图所示:
5.理解POM结构
当打开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>com.smart</groupId>
<artifactId>smart</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>4.11</junit.version>
</properties>
<dependencies>
<!--junit-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!--compile-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compile.version}</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<!--maven 打包时想跳过单元测试-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!--tomcat-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/${project.artifactId}</path>
</configuration>
</plugin>
</plugins>
</build>
简单介绍一下:
-
modelVersion 是POM的版本号,现在是4.0.0, 默认的不需要修改
-
groupId,artifactId,version分别代表Maven项目的组织名,构件名,版本号,它们三个是Maven坐标
-
packaging表示该项目的打包方式,war表示打包为war文件,默认为jar,表示打包为jar文件
-
dependencies定义该项目的依赖关系
-
build表示与构件相关的配置
通过IDEA可以很清晰的看到POM结构图:
每个pom.xml都应该有:
-
Lifecycle-生命周期
-
Plugins-插件
-
Dependencied-依赖
pom.xml文件中会有一个scope作用域, 包括以下几种:
-
compile-默认作用域 编译 测试 运行时有效
-
test-测试时有效
-
runtime-运行时有效
-
provided-编译 测试有效 运行时无效
-
system-与provided类似 但依赖于系统资源
6.使用Maven命令
maven 常用的命令有:
-
mvn clean-清空target目录
-
mvn compile-编译源代码
-
mvn package-生成构件包 一般为jar或者war包
-
mvn install-将构件包安装到本地仓库
-
mvn deploy -N -将构件包部署到远程仓库
-
mvn tomcat:run-通过maven运行项目
-
mvn dependency:sources-从本地仓库获取源代码
-
mvn -X compile - debug模式编译项目
-
mvn clean install -DskipTests -U
7.后记
关于maven在实际项目的实战 后续会慢慢添加,下一次我会介绍一下如何将构件发布到Maven中央仓库
来源:oschina
链接:https://my.oschina.net/u/863334/blog/621621