Maven之Eclipse使用
1 Maven介绍
1.1 Maven是什么
一个项目综合管理工具
Maven提供了开发人员构建一个项目的完整的生命周期框架
1.2 Maven作用
简化和标准化项目建设过程,处理编译,分配/分发,文档,团队协作和其他任务的无缝连接
使开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期
1.3 核心功能点
项目研发的完整的生命周期
项目构建
依赖管理(本节重点)
版本发布
2 Maven工作原理
3 Maven实际开发重要注意事项
3.1 核心概念
3.1.1 本地仓库
本地电脑中的jar包的集中存储的目录
当需要找jar的时候,先从本地仓库中寻找
3.1.2 远程仓库
从外部主机或是网络服务当中寻找依赖的jar包
3.1.2.1 中央仓库
一般称为central
3.1.2.2 第三方远程仓库
每个国家都有常用的、权威的第三方仓库.
阿里云
csdn
osc等等。
3.1.2.3 自家构建的远程仓库
公司自行搭建的自用的maven仓库,通过Nexus软件搭建即可
一般只有中大型公司才有。
也常称私服。
3.1.3 maven插件(plugin)
基于maven环境, 实现的自由可插拔式的各种功能的组件
比如编译、打包等功能。
3.1.4 maven依赖jar包分类
应用依赖jar包
maven环境尤其是插件依赖的jar
3.1.5 maven镜像仓库
由于远程仓库,尤其是中央仓库,存在翻墙、跨国访问、并发量大等的原因,所以一般需要一个国内本地的仓库将中央仓库的内容进行定期同步构建仓库,该种仓库即为镜像仓库。
最常见的即为阿里云镜像仓库。
3.2 maven如何配置仓库来加速maven项目构建
3.2.1 配置方法
3.2.1.1 以项目为主体配置仓库:仅在本项目起作用
配置项目中pom.xml文件中repositories标签属性即可。
该配置有缺点,不能解决maven系统环境或是插件依赖下载的问题。
3.2.1.2 全局仓库配置:在所有项目中起作用
配置maven系统环境中settings.xml文件中repositories标签属性即可。
该配置有缺点,不能解决maven系统环境或是插件依赖下载的问题。
3.2.1.3 maven镜像配置
配置maven系统环境中settings.xml文件中mirror标签属性即可。
该配置最完美,可以将应用jar和maven环境依赖的jar统统走镜像高速下载完成。
3.2.2 具体配置方法
模板文件拷贝后改动唯一 的一个本地仓库源参数即可完美使用。
4 Maven eclipse环境搭建
4.1 创建Maven项目
4.2 测试
在空maven环境下,创建Hello World.java类,做常规代码测试
在空maven环境下,不用pom配置的话,跟之前的传统裸项目完全一致
4.3 配置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.tl.job018</groupId>
<artifactId>FirstMaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 仓库源,我的依赖从哪里下载 -->
<repositories>
<repository>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
</repositories>
<!-- 我的依赖jar包 -->
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
</dependencies>
<!-- 项目构建打包配置 -->
<build>
<finalName>MyMavenJarName</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
4.4 依赖的坐标寻找方法
以mysql-jdbc为例,其他的类似
5 经典常见问题解决
5.1 eclipse集成maven版本略低问题
问题:
maven创建webapp后的pom首行报错,如"org.apache.archiver.MavenArchiver.getManifest"等
原因分析:
主要是maven插件版本略低导致的
解决方法:
找到eclipse菜单栏中的help菜单项->Install New Software->Add
将下边的url链接加入地址栏:
http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
点击ok后,最左下方的选项,一定都要去掉,即
Contact all update sites during install to find required software
然后右下方点击next或是finish均可,进入在线更新,一般很快会完成
然后重启eclipse
打开后,对项目进行maven update后,问题即解决
5.2 maven下载jar包速度过慢的问题
问题:
明显的下载速度慢或是不下载,导致开发效率很受影响
原因分析:
没有更新maven系统配置当中的镜像仓库,添加上镜像仓库后,各种依赖下载均可以按照指定的镜像进行快速下载,跟eclipse有一定的关系,建议使用eclipse-jee版
解决方法:
将maven的系统配置文件进行更新即可,参考maven实际开发重要注意事项
资源链接1:https://download.csdn.net/download/simplelove0519/20235048
资源链接2:https://download.csdn.net/download/simplelove0519/20235041