近期开发的云平台项目使用了Maven 最为项目开发的管理工具,那么何为Maven呢?有何用途以及它的实现原理是什么呢?带着好奇,我们一起来学习Maven,共同揭开它的神秘面纱!

一,何为Maven
Maven是一个采用纯java编写的开源项目管理工具。采用一种被称为Project  object Model(POM)概念来管理项目,所有的项目配置信息都被定义在pom.xml文件中,通过这个pom文件,就可以管理我们对所有包的依赖。例如,我们使用一些开源框架,第三方工具的jar包,以及这些jar包依赖的其他包等。通常,我们项目中需要依赖的jar包很多,这时候,jar包版本兼容问题也就来了,maven可以对项目依赖的jar包进行管理,保持jar包基本的依赖,可以对jar包进行版本升级,也可以排除冗余的jar包。 同时maven也是一个强大的构建工具,能够帮我们自动化构建过程,从清理、编译 、测试到生成报告,再到打包和部署。


二、maven的安装与配置

1.配置java运行环境
Maven依赖Java运行环境,因此使用Maven之前需要配置Java的运行环境,Maven可以运行在JDK1.4及以上的版本
    JAVA_HOME为D:\jdk1.8.0_25

    在path中加入%JAVA_HOME%\bin;


2.安装maven


 将安装文件解压到指定的目录中,如:D:\SoftInstall\JAVA\maven,接着需要设置环境变量,将maven安装配置到操作系统环境中。点击计算机-属性-高级系统设置-环境变量,在用户变量中编辑如下:

MAVEN_HOME=D:\SoftInstall\JAVA\maven

修改PATH,在配置中添加%MAVEN_HOME%\bin;  注意:多个值之间需要有分号隔开


3、 调出命令行窗口(win + r之后输入cmd)
4、 输入mvn –version,出现界面如下,则安装Maven配置成功
 


5.设置配置文件

Maven 最重要的配置就是settings.xml文件的配置,用户可以选择配置 $ M2_HOME/conf/settings.xml 或者 ~/.m2/settings.xml。前者是全局范围的,整台机器上的用户都会受到该配置的影响。而后者是用户范围的,只有当前用户才会受到该配置的影响。

settings.xml设置如下:

	<!-- 设置本地仓库路径 -->
	<localRepository>D:/maven/repository</localRepository>
	<!-- 设置发布 jar 包时的用户名及密码 -->
	<servers>		
		<server>
			<id>releases</id>
			<username>admin</username>
			<password>admin123</password>
		</server>
		<server>
			<id>snapshots</id>
			<username>admin</username>
			<password>admin123</password>
		</server>        
	</servers>
	<!-- 设置 maven 的远程仓库为 nexus -->
	<mirrors>
		<mirror>
			<id>nexus</id>
			<mirrorOf>*</mirrorOf>
			<name>Local Repository</name>
			<url>http://192.168.24.252:8081/nexus/content/groups/public</url>
		</mirror>
	</mirrors>
	<!-- 设置 central 的路径等 -->
	<profiles>
		<profile>
			<id>central</id>
			<repositories>
				<repository>
					<id>central</id>
					<name>Central</name>
					<!-- 该 url 没有意义,可以随便写,但必须有。 -->
					<url>http://localhost:8081/nexus/content/groups/public</url>
					<releases><enabled>true</enabled></releases>
					<snapshots><enabled>true</enabled></snapshots>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>central</id>
					<name>local private nexus</name>
					<url>http://localhost:8081/nexus/content/groups/public</url>
					<releases><enabled>true</enabled></releases>
					<snapshots><enabled>true</enabled></snapshots>
				</pluginRepository>
			</pluginRepositories>
		</profile>
	</profiles>
 
	<!-- 激活 central -->
	<activeProfiles> 
		<activeProfile>central</activeProfile>
	</activeProfiles>
	<!-- 配置eclipse插件 -->
	<pluginGroups>
		<pluginGroup>org.mortbay.jetty</pluginGroup>    
		<pluginGroup>org.codehaus.cargo</pluginGroup>        
	</pluginGroups>
</settings>


三、Maven的生命周期


Maven基于生命周期模型对项目进行管理,Maven有三套相互独立的生命周期。

Clean Lifecycle 在进行真正的构建之前进行一些清理工作;

Site Lifecycle 生成项目报告,站点,发布站点。

Defau Lifecycle构建的核心部分,编译、测试、打包、部署等;


总结:Maven是一款优秀的项目管理工具,但是同时它也存在着一些缺点,例如Maven对IDE(Eclipse和IDEA)的支持比较差,bug多,而且很不稳定,这次做项目对这点感触颇深,m2eclipse插件是一个比较优秀和成熟的工具。另一点就是Maven仓库jar更新的不及时,或是有时候无法从远程仓库中下载jar包,常需要我们手动下载复制到本地仓库中 。但是不管怎么说,Maven还是一个比较出色的。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐