网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
2)去 Maven 官网下载想要的版本并解压,下载地址为:
https://maven.apache.org/download.cgi
3)设置环境变量,主要是 MAVEN_HOME 和 Path。
4)打开命令行,输入 mvn -v
验证 Maven 是否配置成功。
5)Maven 的 conf 目录下包含了一个非常重要的文件 settings.xml,一般情况下,我倾向于将该文件复制到 ~/.m2/
目录下——建议你也这么做。
打开该文件,在 <mirrors></mirrors>
节点下添加阿里云的镜像地址(参照下面的代码)。为什么要这么做呢?因为 Maven 默认的仓库在不翻强的情况下很难访问到。
这里需要注意的是,<mirrorOf>
的值有下面四种方式:
<mirrorOf>*<mirrorOf>
:匹配所有远程仓库,也就是说任何对于中央仓库的请求都会转至该镜像。<mirrorOf>external:*<mirrorOf>
:匹配所有不在本机上的远程仓库。<mirrorOf>repo1,repo2<mirrorOf>
:匹配仓库 repo1 和 repo2,使用逗号分隔多个远程仓库。<mirrorOf>*,!repo<mirrorOf>
:匹配所有远程仓库,repo 除外,使用感叹号将仓库从匹配中排除。
6)在 Eclipse 下依次选择菜单 Window → Show View → Other → Maven → Maven Workspace Build,查看镜像是否配置成功(我习惯了使用 Eclipse,所以请见谅,不过不管使用哪种集成开发环境,思路和步骤都大差不差)。
03、快速创建 Maven 项目
为了尽快步入重点,这一小节我会有意的避重就轻,没必要的步骤会略过。
1)在 Eclipse 中新建项目的时候选择 Maven Project。
2)在接下来选择项目类型的时候,选择 maven-archetype-quickstart,如下图所示。
3)然后指定项目参数的时候填写 group id 和 artifact id。
4)项目创建成功后的目录结构图如下图所示。
Maven 3 默认使用的依然是 JDK 1.5,不过我们可以为其配置更高版本的 JDK,后面会聊到。
04、详细分析 pom.xml
毫无疑问,Maven 项目的灵魂只有一个,那就是 pom.xml 文件,所以接下来我会详细地对其进行分析。
1)项目基本信息
pom.xml 文件的第一部分主要用来描述项目的基本信息。
4.0.0
com.cmower
test
0.0.1-SNAPSHOT
jar
test
①、<project>
是 pom.xml 的根元素,声明了相关的命名空间。
②、<modelVersion>
指定了当前项目对象模型(POM)的版本,对于 Maven 3.x 来说,该值只能是 4.0.0。
③、<groupId>
定义了项目的组名,这个组往往和项目所在的组织或公司关联。
④、<artifactId>
定义了当前 Maven 项目在组中唯一的 ID。
⑤、<version>
定义了项目的版本号,SNAPSHOT
为快照的意思,也就是说该项目还处于开发阶段。
⑥、<packaging>
定义了项目的打包类型,可选值有 war、jar 等。
⑦、<name>
定义了项目的名称。
2)变量配置信息
pom.xml 文件的第二部分通常用来配置一些变量信息。
有了变量的配置信息后,可以通过 ${spring.version}
的形式来调用这些配置项。这样做的好处显而易见,当依赖项的版本升级的时候,可以直接修改变量值即可。
3)依赖管理
阿里云的 Maven 仓库下有各种各样的第三方类库,换句话说就是,只有你想不到的,没有你找不到的。大多数 Maven 项目的依赖项列表都会很长很长,为了便于说明,下面我只列出某些具有特色的。
junit junit 3.8.1 test org.springframework spring-core ${spring.version} commons-logging commons-logging commons-logging commons-logging 1.1.1①、上文中曾提到,<groupId>
、<artifactId>
、<version>
合起来可以准确地定位一个依赖项。那怎么找到想要的依赖项呢?
第一步,进入 MavenRepository 网站,地址如下:
http://mvnrepository.com
然后在搜索框中输入第三方类库的关键字,比如说「spring-core」,点击「search」按钮,可以查看到该类库的链接导航。
第二步,点击链接进入到「spring-core」的主页,可以看到所有版本的「spring-core」,选择一个使用率最高的。使用率高在一定程度上表明这个版本的类库最稳定,它已经得到了广大程序员的认可。
第三步,进入该版本的主页,只需要左键轻轻地在 「Maven」选项卡内点一下,就已经把该类库的 Maven 依赖信息复制到粘贴板了(不需要「Ctrl+C」,非常的人性化),如下图所示。
第四步,将类库的依赖信息粘贴到 pom.xml 文件的 <dependencies>
节点下,然后按下快捷键「Ctrl+S」保存。紧接着,依次展开 test → Java Resources → Libraries → Maven Dependencies 节点,你可以看到该类库已经悄悄地添加进来了。
②、 <exclusions>
主要用于排除依赖。
有时候,我们引入的依赖中可能会包含一些不想要的依赖包,我们想引入自己想要的,这时候就要用到排除依赖了。
使用 <exclusion>
的时候只需要指定 groupId 和 artifactId 就行了,并不需要 version,这是因为 groupId 和 artifactId 就可以定位某种类型的依赖。
③、 <scope>
用来控制依赖的范围。
test:测试依赖范围。典型的例子是 Jnuit,它只有在编译测试代码及运行测试的时候才需要。
compile:编译依赖范围(其实不止是编译,对测试、运行同样有效),缺省项,如果没有指定,就会默认使用该依赖范围。
provided:提供依赖范围。对编译和测试有效,但在运行时候无效。
runtime:运行时依赖范围。对测试和运行有效,但在编译时无效。
PS:如果不知道选哪一种,缺省就对了。
4)构建配置
<build>
元素中包含了执行 Maven 构建周期目标所需的插件以及相关的配置。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
96489)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!