一、Maven简介
Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
Maven 也可被用于构建和管理各种项目,例如 C#,Ruby,Scala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。
Maven的主要目标是允许开发人员在最短的时间内理解开发工作的完整状态。 为了实现此目标,Maven尝试解决以下几个方面的问题:
- 简化构建过程
- 提供统一的构建系统
- 提供高质量的项目信息
- 提供最佳实践开发指南允许透明迁移到新功能
二、Maven的下载
下载路径:http://maven.apache.org/download.cgi
将下载的压缩包,解压到英文环境文件夹下
三、Maven的配置
3.1配置环境变量
像配置JDK环境变量一样配置Maven环境变量:
创建系统变量:Maven_HOME
配置Path:
检验,通过命令查看Maven版本信息:打开cmd命令行,输入 mvn -v 命令
3.2配置中央仓库和本地仓库路径
打开配置文件conf/settings.xml文件。
中央仓库,国内建议配置阿里云仓库路径:在146行左右的
nexus-aliyun
central
central mirror in china
http://maven.aliyun.com/nexus/content/groups/public
本地仓库,默认:${user.home}/.m2/repository
自定义的文件夹路径
3.3 Intellij Idea配置本地Maven
打开setting->Build->Maven
四、Maven项目
Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则:
目录 目的
${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 测试编译输出目录
pom.xml文件主要标签详解:
4.0.0
asia.banseon
banseon-maven2
jar
1.0-SNAPSHOT
banseon-maven
http://www.baidu.com/banseon
A maven project to study maven.
jira
http://jira.baidu.com/banseon
Demo
[email protected]
[email protected]
[email protected]
http:/hi.baidu.com/banseon/demo/dev/
HELLO WORLD
banseon
[email protected]
Project Manager
Architect
demo
http://hi.baidu.com/banseon
No
-5
Apache 2
http://www.baidu.com/banseon/LICENSE-2.0.txt
repo
A business-friendly OSS license
scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)
scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk
http://svn.baidu.com/banseon
demo
http://www.baidu.com/banseon
......
......
Windows XP
Windows
x86
5.1.2600
mavenVersion
2.0.3
/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
......
......
......
......
......
......
banseon-repository-proxy
banseon-repository-proxy
http://192.168.1.169:9999/repository/
default
......
org.apache.maven
maven-artifact
3.8.1
jar
test
spring-core
org.springframework
true
......
banseon-maven2
banseon maven2
file://${basedir}/target/deploy
banseon-maven2
Banseon-maven2 Snapshot Repository
scp://svn.baidu.com/banseon:/usr/local/maven-snapshot
banseon-site
business api website
scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
五、Maven的生命周期
validate:验证项目 验证项目是否正确且所有必须信息是可用的
compile:执行编译 源代码编译在此阶段完成
test:测试,使用适当的单元测试框架(例如JUnit)运行测试。
package:打包,创建JAR/WAR包如在 pom.xml 中定义提及的包
verify:检查,对集成测试的结果进行检查,以保证质量达标
install:安装,安装打包的项目到本地仓库,以供其他项目使用
deploy:部署,拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程