Maven学习笔迹

Maven需要了解的

Maven是什么?

Maven是一个项目管理工具,它包含了一个项 目对象模型 (Project Object
Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency
Management System),和用来运行定义在 生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
当你使用Maven的时候,你 用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,
这些逻辑来自一组共享的(或者自定义的)插件。

约定优于配置

约定优于配置是一个简单的概念。 系统,类库,框架应该假定合理的默认值,而非要 求提供不必要的配置。 

一个“项目”的概念模型

Maven 维护了一个项目的模型,你不仅仅需要把源码编译成字节码,你还需要开发软 件项目的描述信息,为项目指定一组唯一的坐标。你要描述项目的的属性。项目的许可 证是什么?谁开发这个项目,为这个项目做贡献?这个项目依赖于其它什么项目没有? Maven不仅仅是一个“构建工具”,它不仅仅是在类似于 make 和 Ant 的工具的基础上 的改进,它是包含了一组关于软件项目和软件开发的语义规则的平台。这个基于每一个 项目定义的模型实现了如下特征:
依赖管理 由于项目是根据一个包含组标识符,构件标识符和版本的唯一的坐标定义的。项 目间可以使用这些坐标来声明依赖。
远程仓库 和项目依赖相关的,我们可以使用定义在项目对象模型(POM)中的坐标来创建 Maven 构件的仓库。
全局性构建逻辑重用 插件被编写成和项目模型对象(POM)一起工作,它们没有被设计成操作某一个 已知位置的特定文件。一切都被抽象到模型中,插件配置和自定义行为都在模型 中进行。
工具可移植性/集成 像 Eclipse,NetBeans,和 InteliJ 这样的工具现在有共同的地方来找到项目 的信息。在 Maven 出现之前,每个 IDE 都有不同的方法来存储实际上是自定义 项目对象模型(POM)的信息。Maven 标准化了这种描述,而虽然每个 IDE 仍然 继续维护它的自定义项目文件,但这些文件现在可以很容易的由模型生成。
便于搜索和过滤构件 像 Nexus 这样的工具允许你使用存储在 POM 中的信息对仓库中的内容进行索引 和搜索。
一个简单的 Maven pom.xml
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.sonatype.mavenbook</groupId>
  <artifactId>my-project</artifactId>
  <version>1.0</version>
</project>

• Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里。它把字 节码放到 target/classes ,然后在
target 生成一个 JAR 文件。 • Maven 是声明式的。你需要做的只是创建一个 pom.xml 文件然后将源代码放
到默认的目录。Maven 会帮你处理其它的事情。 • Maven 有一个生命周期,当你运行 mvn install
的时候被调用。这条命令告 诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命 周期旅途中的一个影响就是,Maven
运行了许多默认的插件目标,这些目标完 成了像编译和创建一个 JAR 文件这样的工作。

安装和运行Maven

maven是一堆jar包,其中包含了可执行jar,需要java环境(jdk)

C:\Users\$>java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)

Maven下载地址
Maven:http://maven.apache.org/ download.html.

安装maven ,配置一下环境变量就好了

windows

MAVEN_HOME
D:\SoftwareDevelopmentEnvironment\JavaSoftwareEnvironment\maven\MavenHomeDirectory\apache-maven-3.3.9
PATH
%MAVEN_HOME%\bin

unix OSX

$ vim profile
 export MAVEN_HOME=/usr/local/maven
 export PATH=${MAVEN_HOME}/bin:PATH
/usr/local % ln -s maven-3.3.9 maven

验证Maven安装

$ mvn -v
Maven 3.3.9

 D:\SoftwareDevelopmentEnvironment\JavaSoftwareEnvironment\maven\MavenHomeDirectory\apache-maven-3.3.9 的目录

2020/12/20  17:36    <DIR>          .
2020/12/20  17:36    <DIR>          ..
2020/12/20  17:36    <DIR>          bin Maven核心的JAR文件(maven-2.0.9-uber.jar)
2020/12/20  17:36    <DIR>          boot 包含了一个负责创建Maven运行所需要的类装载器的JAR文件
安装和运行Maven(classwords-1.1.jar
2020/12/20  17:36    <DIR>          conf 全局配置
2020/12/20  17:36    <DIR>          lib    jar库
2015/11/10  11:44            19,335 LICENSE Apache Maven的软件许可证
2015/11/10  11:44               182 NOTICE
2015/11/10  11:38             2,541 README.txt
               3 个文件         22,058 字节
               6 个目录 321,002,819,584 可用字节
D:\SoftwareDevelopmentEnvironment\JavaSoftwareEnvironment\maven\MavenHomeDirectory\apache-maven-3.3.9\bin>mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: D:\SoftwareDevelopmentEnvironment\JavaSoftwareEnvironment\maven\MavenHomeDirectory\apache-maven-3.3.9\bin\..
Java version: 1.8.0_201, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_201\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"

用户相关配置和仓库

使用IDEA时候用户目录
在~/.m2目录下有:
~/.m2/settings.xml 该文件包含了用户相关的认证,仓库和其它信息的配置,用来自定义Maven的行 为。
~/.m2/repository/ 该目录是你本地的仓库。当你从远程Maven仓库下载依赖的时候,Maven在你本地 仓库存储了这个依赖的一个副本。

Maven Help插件

help:active-profiles 列出当前构建中活动的Profile(项目的,用户的,全局的)。
help:effective-pom 显示当前构建的实际POM,包含活动的Profile。
help:effective-settings 打印出项目的实际settings, 包括从全局的settings和用户级别settings继承的 配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值