首页 > 代码库 > Maven入门教程

Maven入门教程

Maven入门教程
一、maven简介
Maven是一个项目管理工具
它包含:
一个项目对象模型 (Project Object Model)
一组标准集合
一个项目生命周期(Project Lifecycle)
一个依赖管理系统(Dependency Management System)
用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑
项目结构:
源代码放在src/main/java
源代码的资源文件放在src/main/resources
测试代码放在src/test/java
测试代码的资源文件放在src/test/resources
如下图所示:

技术分享
pom:
pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。
主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。
结构详解:
<parent>
......
<!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。
默认值是../pom.xml。
Maven首先在构建当前项目的地方寻找父项 目的pom,
其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。-->
<relativePath/>
</parent>
<!--项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型-->
<packaging>jar</packaging>
<!--SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用。-->
<scm>
<!--SCM的URL,该URL描述了版本库和如何连接到版本库。欲知详情,请看SCMs提供的URL格式和列表。该连接只读。-->
<connection>
scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)
</connection>
<!--给开发者使用的,类似connection元素。即该连接不仅仅只读-->
<developerConnection>
scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk
</developerConnection>
<!--当前代码的标签,在开发阶段默认为HEAD-->
<tag/>
<!--指向项目的可浏览SCM库(例如ViewVC或者Fisheye)的URL。-->
<url>http://svn.baidu.com/banseon</url>
</scm>
<resources>
<!--这个元素描述了项目相关或测试相关的所有资源路径-->
<resource>
<!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。-->
<filtering/>
<!--描述存放资源的目录,该路径相对POM路径-->
<directory/>
<!--包含的模式列表,例如**/*.xml.-->
<includes/>
<!--排除的模式列表,例如**/*.xml-->
<excludes/>
</resource>
</resources>
<!--当filtering开关打开时,使用到的过滤器属性文件列表-->
<filters>
<filter>src/main/resources/filters/db/jdbc-${env}.properties</filter>
<filter>src/main/resources/filters/redis/redis-${env}.properties</filter>
<filter>src/main/resources/filters/rocketmq/rocketmq-${env}.properties</filter>
<filter>src/main/resources/filters/solr/solr-${env}.properties</filter>
<filter>src/main/resources/filters/zookeeper/zookeeper-${env}.properties</filter>
</filters>
<!--项目分发信息,在执行mvn deploy后表示要发布的位置。有了这些信息就可以把网站部署到远程服务器或者把构件部署到远程仓库。-->
<distributionManagement>
<!--部署项目产生的构件到远程仓库需要的信息-->
<repository>
<!--是分配给快照一个唯一的版本号(由时间戳和构建流水号)?还是每次都使用相同的版本号?参见repositories/repository元素-->
<uniqueVersion/>
<id>banseon-maven2</id>
<name>banseon maven2</name>
<url>file://${basedir}/target/deploy</url>
</repository>
<!--构件的快照部署到哪里?如果没有配置该元素,默认部署到repository元素配置的仓库,参见distributionManagement/repository元素-->
<snapshotRepository>
<uniqueVersion/>
<id>banseon-maven2</id>
<name>Banseon-maven2 Snapshot Repository</name>
<url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>
</snapshotRepository>
<!--部署项目的网站需要的信息-->
<site>
<!--部署位置的唯一标识符,用来匹配站点和settings.xml文件里的配置-->
<id>banseon-site</id>
<!--部署位置的名称-->
<name>business api website</name>
<!--部署位置的URL,按protocol://hostname/path形式-->
<url>
scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
</url>
</site>
</distributionManagement>
项目坐标:
GAV-->groupid(项目Id,一般为包名),artifacId(项目名称或模块名称),version(项目版本)。maven通过项目坐标来发现项目并产生依赖。
二、maven安装
2.1、下载:
下载地址:http://maven.apache.org/download.cgi#Installation
2.2、解压缩,配置环境变量
2.3、验证-->命令行窗口-->mvn -version。出现如下截图,证明安装成功。

技术分享
三、maven仓库
中央仓库
配置在org.apache.maven.model.pom4.0.0.xml,maven包中,可以修改远程仓库地址
私有仓库
一般是公司局域网内部搭建的私有服务器,用来存放公司所需jar文件。
搭建步骤:
安装nexus,解压缩
配置环境变量
执行nexus install,将nexus发布成windows服务,控制面板可以看见
修改安装目录/bin/jsw/conf下wrapper.conf,将Set the JVM executable下面的命令路径修改为jdk安装目录\bin\java
使用nexus start启动服务
启动服务后通过浏览器输入:localhost:8080/nexus访问nexus
仓库讲解
hosted--内部项目的发布仓库
3rd part仓库---第三方包发布仓库,这个通常是由内部人员下载之后执行发布上去
release---内部模块中release模块的发布仓库
snashot---发布内部快照模块仓库
proxy---从远程中央仓库寻找数据的仓库
mirror镜像
私有仓库设置
1、更新私有仓库索引或者下载索引,将其拷贝到中央仓库的索引目录中
2、设置镜像
3、配置仓库
本地仓库
个人电脑或开发者电脑,可通过设置setting.xml指定jar文件的目录
项目从本地服务器找,本地找不到去私有服务器找,私有服务器找不到去中央仓库找。

Maven入门教程