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本地仓库的地址

jainsip maven 使用 maven如何使用_maven

3.仓库的概念

  仓库分为:本地仓库、第三方仓库(私服)、中央仓库

3.1 本地仓库

  Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下,我这里是C:\Users\26530.m2

jainsip maven 使用 maven如何使用_maven_02


  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包如果本地仓库没有,默认从中央仓库下载

jainsip maven 使用 maven如何使用_jainsip maven 使用_03

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的首选项设置

jainsip maven 使用 maven如何使用_xml_04

5.2找到Maven的配置项目

jainsip maven 使用 maven如何使用_maven_05

5.3设置Maven的全局配置文件settings.xml

jainsip maven 使用 maven如何使用_jainsip maven 使用_06


  说明:Eclipse会自动的使用 settings.xml 文件中包含镜像库的URL地址信息, 找到Maven镜像库位置.

5.4更新配置信息

jainsip maven 使用 maven如何使用_jainsip maven 使用_07

5.5 找到Window菜单

jainsip maven 使用 maven如何使用_jainsip maven 使用_08

5.6 开启Maven的视图, 检查是否已经配置了镜像库

jainsip maven 使用 maven如何使用_xml_09

6.创建Maven 桌面项目
6.1选择菜单创建Maven项目

jainsip maven 使用 maven如何使用_maven_10

6.2选择项目目录结构的骨架

jainsip maven 使用 maven如何使用_jainsip maven 使用_11

6.3输入项目相关信息

jainsip maven 使用 maven如何使用_apache_12

6.4创建maven 不同包类型工程

jainsip maven 使用 maven如何使用_xml_13


  创建完parent mavne pom 工程,可以对这个父 maven 工程 添加子模块:

jainsip maven 使用 maven如何使用_xml_14


jainsip maven 使用 maven如何使用_xml_15

  还可以对这个父 maven 工程 还可以添加子模块(web maven工程):

jainsip maven 使用 maven如何使用_apache_16

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

jainsip maven 使用 maven如何使用_maven_17


  第二步:找到是哪个组织开发的包

jainsip maven 使用 maven如何使用_jainsip maven 使用_18


  第三步:找到你要的版本

jainsip maven 使用 maven如何使用_jainsip maven 使用_19


  第四步:复制你要的版本配置文件

jainsip maven 使用 maven如何使用_maven_20


  第五步:复制配置文件到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项目 编译打包

jainsip maven 使用 maven如何使用_apache_21