一、Maven的作用
1、规范管理Java项目的目录结构。项目非常大时,可借助Maven将一个项目拆分成多个工程,最好是一个模块对应一个工程,利于分工协作。而且模块之间还是可以相互依赖进行消息的传递。
2、统一管理jar包。Maven可以自动下载项目所需要的jar包,并统一管理jar包之间的依赖关系。Maven工程首先会从本地仓库中获取jar包,当无法获取指定jar包时,本地仓库会从私服或者远程仓库(中央仓库)中下载jar包,并放入本地仓库以备将来使用。我们只需要在Pom.xml文件进行配置即可。
阿里云的远程仓库:在maven的conf文件的settings.xml进行设置。
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
3、Maven项目启动时,直接通过其内置的Tomcat,在pom.xml文件中加入如下配置:
<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port>8083</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
右键Maven项目—>Run As–>Run Configurations–>Maven Bulid–>右键new–>
4、利用maven可直接把maven项目打成war包
右键单击要打包的项目,Run As -->Maven Bulid–>
二、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>cn.lyf.dubbo</groupId>
<artifactId>dubbo-a</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>cn.itcast.dubbo</groupId>
<artifactId>dubbo-b-api</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependencies>
</project>
主要元素:
1、modelVersion
指定了当前Maven模型的版本号,对于Maven2和Maven3来说,它只能是4.0.0
2、groupId
公司名或组织名。一般来说groupId是由三个部分组成,每个部分之间以".“分隔,第一部分是项目用途,比如用于商业的就是"com”,用于非营利性组织的就 是"org";第二部分是公司名,比如"tengxun"、“baidu”、“alibaba”;第三部分是你的项目名
3、artifactId
Maven构建的项目名,比如你的项目中有子项目,就可以使用"项目名-子项目名"的命名方式
4、version
版本号,SNAPSHOT意为快照,说明该项目还在开发中,是不稳定的版本。
在Maven中很重要的一点是,groupId、artifactId、version三个元素生成了一个Maven项目的基本坐标.
其他元素:
1、packing
项目打包的类型,可以使jar、war、rar、ear、pom,默认是jar
2、dependencies和dependency
前者包含后者。由于Maven的一个重要作用是统一管理jar包,为了一个项目可以build或运行,项目中不可避免的,会依赖很多其他的jar包,在Maven中,这些依赖就被称为dependency。
补充:导入依赖的原则:所有工程均需要,在聚合工程中导入;运行时所需依赖在web即中导入;在使用的最底层导入(多实践就知道是什么意思了)
3、properties
定义一些配置属性的,例如project.build.sourceEncoding(项目构建源码编码方式),可以设置为UTF-8,防止中文乱码,也可定义相关构建版本号,便于日后统一升级。
4、build
表示与构建相关的配置,比如build下有finalName,表示的就是最终构建之后的名称。
三.Maven集成到开发工具中使用
常用的开发工具Idea、MyEclipse里面都已经集成了Maven,不过最好是从官网下一个配置到自己电脑里
示例所用maven为3.2.3,下载链接:https://pan.baidu.com/s/1z1mD-lpWJErN775iilerJA 提取码:xy7i
四、创建Maven项目
五、maven相关问题解决
1、
出现.lastUpdated结尾的文件的原因:由于网络原因没有将Maven的依赖下载完整,导致。
解决方案:
删除所有以.lastUpdate结尾的文件
a) 1、切换到maven的本地仓库
b) 2、在当前目录打开cmd命令行
c) 3、执行命令:for /r %i in (*.lastUpdated) do del %i
在项目上执行 Maven Update (Alt + F5)
2、本地仓库中确定已经有jar包了,工程里面却报错,说找不到jar包
Eclipse->Window->Preferences->搜索Maven->User Settings,Update Settings。另外,可以尝试一下把本地Maven仓库内的jar包删除,然后重新build workspace,也可行。