一、maven 入门

Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven也可被用于构建和管理各种项目,例如C#,Ruby,Scala和其他语言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基金会主持的独立Apache项目。

1.maven 软件安装

  • 确定本地安装 JDK
    打开cmd 敲击:echo %JAVA_HOME% 检查 本地是否配置 JAVA_HOME环境变量;JAVA -version 检查 JAVA 可执行程序是否可用
  • maven zip 包,解压,解压的路径不要出现中文或者特殊符号
图片.png
  • 配置 maven 的环境变量
    配置 MAVEN_HOME 环境变量名称对应的值为:maven 软件的解压路径
    配置 PATH 环境变量名称对应的值:%MAVEN_HOME%/BIN
  • 检查 maven 的环境变量配置是否完成
    mvn -v 是否显示maven相关信息,没有显示表示maven 未配置成功

2.快速创建 maven 项目

  • mvn archetype:generate -DgroupId=com.xingxue.mavendemo -DartifactId=mavendemo-day1 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

-DgroupId : maven 项目的名称
-DartifactId : maven 项目模块名称
-DarchetypeArtifactId :使用maven 的骨架(工程结构)

3.maven 项目工程结构

----| maven 项目模块文件夹
  ---|src 文件
    ---|main 主代码
      ---| java 文件夹:将来都放包
      ---| resouces 文件夹:将来放配置文件
    ---|test 测试代码
      ---| java 文件夹:将来都放包
      ---| resouces 文件夹:将来放配置文件
  ---|pom.xml pom文件

  • maven 常用命令:
    编译命令:mvn compile
    清除命令: mvn clean
    测试命令: mvn test
    打包命令: mvn package
    安装命令:mvn install

4.maven 坐标

站在 maven 软件的角度看 项目,每个项目都是一个构建而已,一个项目如果要分模块,可以把每个模块看成一个构建。一个构建要依赖其他的构建,如何去引用其他构建,三坐标来描述一个构建。

  • 三坐标:gav
    groupId:描述项目名称(带个组织公司的域名)eg:com.xingxuecn.crm
    artifactId:描述项目的模块 eg:crm-service
    version:模板的版本号 eg:1.0

  • 三坐标在 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/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
  
  <groupId>com.xingxue.mavendemo</groupId>
  <artifactId>mavendemo-day2</artifactId>
  <version>1.0-SNAPSHOT</version>
  • artifactId + version = 打成jar 的名称
    eg:mavendemo-day2-1.0-SNAPSHOT.jar

  • 构建在仓库中的路径 = groupId+artifactId+1.0-SNAPSHOT路径下

  • pom 文件:(project object model),该文件用于来描述模块的信息的,不仅来描述模块的三坐标,将来还要描述依赖管理的插件以及jar包等信息

  • 修改 中央仓库的地址:


    图片.png

5.依赖管理

依赖包具有传递性,如果有一个包要依赖其他,其他的包也会同时下载

eg:下载 struts2的包,只需要导入 struts2-core包,就会依赖的下载其他的包

    <dependencies>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.3.34</version>
        </dependency>
    </dependencies>

依赖包的图如下:


图片.png

查询构建的三坐标网站:http://mvnrepository.com/

6.仓库管理

仓库将来就是用于存放一些 jar 包以及 maven 插件(编译插件、打包的插件......)

本地仓库 --------------------> 私服 ------------------->远程仓库

7.生命周期

Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,初学者容易将Maven的生命周期看成一个整体,其实不然。这三套生命周期分别是:

  • Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

  • Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等

  • Site Lifecycle 生成项目报告,站点,发布站点。

注意:它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。

mvn install : 编译 、 测试 、 打包 、 安装,这就是一套默认的构建生命周期
mvn clean: 构建输出的清理
mvn clean install : 先执行 清理,然后编译 、 测试 、 打包 、 安装

常用两套生命周期来玩: mvn clean test 、 mvn clean compile、 mvn clean package....

8. maven 软件 集成到 Eclipse,利用 Eclipse 自带的 maven 插件

  • Eclipse 自带的 maven 插件 m2Eclipse 插件。
  • 图片.png
图片.png
  • 使用 eclipse 创建 maven jar工程


    图片.png
  • 使用 eclipse 创建 maven war工程


    图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • Maven编译代码的相关命令 第一、main目录下的主代码编写完毕后,使用Maven进行编译,在项目根目录下运行命...
    加油小杜阅读 1,185评论 0 2
  • 在maven的世界里,一切都从pom文件开始...... 下面是一个入门级helloworld项目的 pom配置文...
    小炼君阅读 1,166评论 2 50
  • 1 为什么使用Maven这样的构建工具 【Why】 1.1 一个项目就是一个工程 如果项目非常...
    coder_girl阅读 492评论 0 1
  • 一、为什么使用Maven这样的构建工具【why】 ① 一个项目就是一个工程 如果项目非常庞大,就不适合使用pack...
    问题_解决_分享_讨论_最优阅读 1,246评论 0 16
  • 5017年11月10号星期五哈尔滨大雪路面结-8°-7 大早上起来就听见楼下有扫雪的动静了我打开窗户一看,艾玛啥时...
    c0deb784fc0b阅读 229评论 0 1