maven使用教程(含例子)

maven使用教程(含完整例子)

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项目 编译打包
在这里插入图片描述

发布了56 篇原创文章 · 获赞 1 · 访问量 1168

猜你喜欢

转载自blog.csdn.net/atu1111/article/details/105006776