maven使用教程(含完整例子)
文章目录
- maven使用教程(含完整例子)
- 1.maven的安装
- 2.maven的全局配置
- 3.仓库的概念
- 3.1 本地仓库
- 3.2 第三方仓库
- 3.3 中央仓库
- 4. setting配置文件解析
- 4.1 本地仓库 localRepository
- 4.2 交互模式 interactiveMode
- 4.3 离线模式 offline
- 4.4 插件组 pluginGroups
- 4.5 服务器 servers
- 4.6 镜像仓库 mirrors
- 5.Eclipse中Maven的配置
- 5.1打开Eclipse的首选项设置
- 5.2找到Maven的配置项目
- 5.3设置Maven的全局配置文件settings.xml
- 5.4更新配置信息
- 5.5 找到Window菜单
- 5.6 开启Maven的视图, 检查是否已经配置了镜像库
- 6.创建Maven 桌面项目
- 6.1选择菜单创建Maven项目
- 6.2选择项目目录结构的骨架
- 6.3输入项目相关信息
- 6.4创建maven 不同包类型工程
- 7.maven的POM文件
- 7.1最简单的POM配置
- 7.2 添加Jar组件
1.maven的安装
maven环境的配置,我觉得有必要安装一下,目的为了使用命令行创建maven项目,和使用命令行操作maven项目。这里不细讲,给出链接,跟安装jdk环境类似,maven 下载安装教程
2.maven的全局配置
在maven安装目录的conf里面有一个settings.xml文件,这个文件就是maven的全局配置文件。该文件中配置来maven本地仓库的地址
3.仓库的概念
仓库分为:本地仓库、第三方仓库(私服)、中央仓库
3.1 本地仓库
Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下,我这里是C:\Users\26530.m2
setting.xml配置文件配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>C:/.m2/repository</localRepository>
</settings>
3.2 第三方仓库
第三方仓库,又称为内部中心仓库,也称为私服
私服:一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可作为公用类库镜像缓存,减少在外部访问和下载的频率。(使用私服为了减少对中央仓库的访问
私服可以使用的是局域网,中央仓库必须使用外网,也就是一般公司都会创建这种第三方仓库,保证项目开发时,项目所需用的jar都从该仓库中拿,每个人的版本就都一样。
注意:连接私服,需要单独配置。如果没有配置私服,默认不使用
setting.xml配置文件配置如下:
<profiles>
<profile>
<id>course</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.7</jdk>
</activation>
<repositories>
<!-- 私有库地址-->
<repository>
<id>public</id>
<url>http://192.168.0.124:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!--插件库地址-->
<pluginRepository>
<id>public</id>
<url>http://192.168.0.124:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>custom-compiler</id>
<properties>
<JAVA_HOME>D:\Program Files\Java\jdk1.7.0_10</JAVA_HOME>
</properties>
</profile>
</profiles>
3.3 中央仓库
Maven内置了远程公用仓库:http://repo1.maven.org/maven2
这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主
工程依赖的jar包如果本地仓库没有,默认从中央仓库下载
4. setting配置文件解析
4.1 本地仓库 localRepository
本地仓库配置,默认在${user.home}/.m2/repository
<localRepository>C:/.m2/repository</localRepository>
可配置本地仓库
<localRepository>D:\maven-repository\repository</localRepository>
4.2 交互模式 interactiveMode
交互模式,默认: true
如果设为false,那么当Maven需要用户进行输入的时候,它会使用一个默认值。
<interactiveMode>true</interactiveMode>
4.3 离线模式 offline
离线模式,默认: false。
这个属性表示在Maven进行项目编译和部署等操作时是否允许Maven进行联网来下载所需要的信息。
true表示不查找。
<offline>false</offline>
4.4 插件组 pluginGroups
插件组,内部由n个pluginGroup节点组成,默认自带了org.apache.maven.plugins和org.codehaus.mojo。
pluginGroup元素指定的是plugin的groupId,表示当通过plugin的前缀来解析plugin的时候到哪里寻找。
若有特殊的需求是可进行扩展。
<pluginGroups>
<pluginGroup>org.mortbay.jetty</pluginGroup>
<pluginGroup>org.jenkins-ci.tools</pluginGroup>
</pluginGroups>
4.5 服务器 servers
服务器,内部由n个server节点组成。
需要连接到一个远程服务器的时候需要使用到的验证方式。
pom.xml中的distributionManagement元素定义了开发库,特定的username和password需要在此配置
有2种配置方式:
通过id匹配,username和password进行认证登录;
通过id匹配指向一个privateKey(私钥)和一个passphrase
<!--配置权限,使用默认用户-->
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
4.6 镜像仓库 mirrors
镜像仓库,内部由n个mirror节点组成。
用来代替中央仓库(Maven默认的远程仓库),用于提升传输速度
参数说明:
id:唯一标识符
name:定义一个容易看懂的名称。
url:表示该镜像的url。当Maven在建立系统的时候就会使用这个url来连接到我们的远程仓库。
mirrorOf:用来表示该mirror是关联的哪一个仓库,其值为其关联仓库的id。
当要同时关联多个仓库时,这多个仓库之间可以用逗号隔开;
当要关联所有的仓库时,可以使用“*”表示;
当要关联除某一个仓库以外的其他所有仓库时,可以表示为“,!repositoryId”;
当要关联不是localhost或用file请求的仓库时,可以表示为“external:”。
<mirrors>
<!--阿里云镜像-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
5.Eclipse中Maven的配置
说明:最新版的Eclipse已经内嵌了Mevne插件m2e,不需要安装Maven插件。如果不做任何配置,会自动连接使用maven中央库自然可以使用,但是中央库在国外,受到中国防火墙等因素影,响其访问速度很慢, 只有连接到国内镜像库才能提高Maven运行速度。连接到国内镜像库按照如下配置:
5.1打开Eclipse的首选项设置
5.2找到Maven的配置项目
5.3设置Maven的全局配置文件settings.xml
说明:Eclipse会自动的使用 settings.xml 文件中包含镜像库的URL地址信息, 找到Maven镜像库位置.
5.4更新配置信息
5.5 找到Window菜单
5.6 开启Maven的视图, 检查是否已经配置了镜像库
6.创建Maven 桌面项目
6.1选择菜单创建Maven项目
6.2选择项目目录结构的骨架
6.3输入项目相关信息
6.4创建maven 不同包类型工程
创建完parent mavne pom 工程,可以对这个父 maven 工程 添加子模块:
还可以对这个父 maven 工程 还可以添加子模块(web maven工程):
7.maven的POM文件
Maven采用"约定优于配置"的原则,Maven的主要约定有以下几条:
1.源代码应该位于${basedir}/src/main/java路径下
2.资源文件应该位于${basedir}/src/main/resources路径下
3.测试代码应该位于${basedir}/src/test路径下
4.编译生成的class文件应该位于${basedir}/target/classes路径下
5.项目应该会产生一个jar文件,并将生成的jar包放在${basedir}/target路径下
7.1最简单的POM配置
<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.personal.eUdstand</groupId>
<artifactId>eUdstand-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
7.2 添加Jar组件
maven添加jar组件的方式就是找到mavne仓库中对应jar组件的依赖配置
如我要添加common-io-2.6版本jar包
第一步:进入mvnrepository网站(https://mvnrepository.com/),搜素common-io
第二步:找到是哪个组织开发的包
第三步:找到你要的版本
第四步:复制你要的版本配置文件
第五步:复制配置文件到pom.xml文件中
<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.personal.eUdstand</groupId>
<artifactId>eUdstand-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
</project>
第六步:右键maven项目 编译打包