-唯快不破-maven快速入门
-稳扎稳打-maven核心知识
-实用为先-maven建立web项目
唯快不破-maven快速入门

Maven介绍与环境搭建

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具
maven的Snapshot版本与Release版本
1.Snapshot版本代表不稳定,尚处于开发中的版本
2.Release版本则代表稳定的版本
3.什么情况下该用SNAPSHOT? 
协同开发时,如果A依赖构件B,由于B会更新,B应该使用SNAPSHOT来标识自己。这种做法的必要性可以反证如下:
a.如果B不用SNAPSHOT,而是每次更新后都使用一个稳定的版本,那版本号就会升得太快,每天一升甚至每个小时一升,这就是对版本号的滥用。
b.如果B不用SNAPSHOT, 但一直使用一个单一的Release版本号,那当B更新后,A可能并不会接受到更新。因为A所使用的repository一般不会频繁更新release版本的缓存(即本地repository),所以B以不换版本号的方式更新后,A在拿B时发现本地已有这个版本,就不会去远程Repository下载最新的B 
4. 不用Release版本,在所有地方都用SNAPSHOT版本行不行? 
不行。正式环境中不得使用snapshot版本的库。 比如说,今天你依赖某个snapshot版本的第三方库成功构建了自己的应用,明天再构建时可能就会失败,因为今晚第三方可能已经更新了它的snapshot库。你再次构建时,Maven会去远程repository下载snapshot的最新版本,你构建时用的库就是新的jar文件了,这时正确性就很难保证了。
环境搭建:
1.下载apache-maven-3.3.3-bin.zip(maven.apache.org)
bin 目录包含mvn的运行脚本
boot目录包含了一个类加载器的框架(plexus-classworlds-2.5.2.jar)
conf是配置文件目录(settings.xml)
lib 包含依赖的一些类库
2.maven介绍及环境搭建
hello maven!
src
-main
-java
-package
-test
-java
-package

resources

目录结构如下:
cmd 进入命令行形式
依次进行
mvn compile
mvn test
mvn package 生成一个
稳扎稳打-maven基础知识
- 常用的构建命令介绍
-自动创建目录骨架
-maven中的坐标与仓库
-在Eclipse中安装maven插件以及创建maven项目
-maven的生命周期和插件
clean、compile、test、package、install
完整的项目构建过程包括:
清理、编译、测试、打包、集成测试、验证、部署
maven生命周期
clean 清理项目
default 构建项目
site    生成项目站点
clean 清理项目
    pre-clean 执行清理前的工作
    clean    清理上一次构建生成的所有文件
    post-clean 执行清理后的文件
default  构建项目(最核心)
compile    test    package    install
site生成项目站点
    pre-site    在生成项目站点前要做的工作
    site    生成项目的站点文档
    post-site    在生成项目站点后要完成的工作
    site-deploy    发布生成的站点到服务器上
pom.xml常用元素介绍
见另一文档pom.xml常用元素介绍

依赖范围
scope    
compile      默认的范围,编译测试运行都有效
provided    在编译和测试有效
runtime    在测试和运行时有效
test    在测试时有效
system    与本机系统相关联,可移植性差
import    导入的范围,它只使用在dependencyManagement中,表示从其它的pom中导入dependency的配置。
依赖传递
A 依赖B
B 依赖C
则A依赖C
排除依赖
<dependency>
<groupId>com.ymg</groupId>
<artifactId>ymg-aM</artifactId>
<version>0.0.1-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>com.ymg</groupId>
<artifactId>ymg-aY</artifactId>
<version>0.0.1-SNAPSHOT</version>
</exclusion>
</exclusions>
</dependency>
maven默认的是jdk1.5 
若要更改工作空间中maven的jdk的话,则要在
settings.xmk文件中配置
<profile>
      <id>jdk-1.7</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.7</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
      </properties>
    </profile>
依赖冲突
1.短路优先
    A->B->C->X(jar)
    A->D->X(jar)
2.先声明先优先
    如果路径长度相同,则谁先声明,先解析谁
聚合和继承
 <packaging>pom</packaging>
 <modules>
   <module>../ymg-aG</module>
   <module>../ymg-aM</module>
   <module>../ymg-aY</module>
  </modules>
mvn -v    查看版本
mvn compile    编译
mvn test     测试
mvn package     打包
mvn clean 删除target
mvn install    安装jar包到本地仓库中然后其他的项目就可以引用,别的项目如果想引用此项目中的内容或者java文件,则要在pom.xml文件中加入源项目pom.xml文件中的该依赖包的坐标,例如
<?xml version="1.0" encoding="UTF-8"?>
<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.ymg.maven02</groupId>
    <artifactId>maven02-model02</artifactId>
    <version>0.0.1SNAPSHOT</version>

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
        </dependency>
       <dependency>
            <groupId>com.ymg.maven01</groupId>
            <artifactId>maven01-model</artifactId>
            <version>0.0.1SNAPSHOT</version>
        </dependency>
    </dependencies>
</project>

引入了maven01项目中的pom.xml文件中的红色字体中  如果本地仓库中存在,则直接加载进来,如果不存在,则去maven的中央仓库中去下载
<?xml version="1.0" encoding="UTF-8"?>

<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.ymg.maven01</groupId>
    <artifactId>maven01-model</artifactId>
    <version>0.0.1SNAPSHOT</version>

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
        </dependency>       
    </dependencies>

</project>

自动创建目录骨架
archetype插件   --- 用于创建符合maven规定的目录骨架
创建目录的两种方式
1.archetype:generate    按照提示进行选择
2.archetype:generate -DgroupId=组织名,公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名
坐标
构件
仓库
本地仓库和远程仓库
镜像仓库
maven的坐标与仓库
更改仓库位置
先修改<localRepository>C:\selfdevelep\repo\maven\repository</localRepository>
复制一份settings,xml文件出来放到一个文件夹下面
在eclipse中使用maven插件以及创建maven项目
创建一个maven项目
运行maven build的时候会出现-Dmaven.multiModuleProjectDirectory 。。。。。
Maven总结
-maven下载和环境搭建
-maven目录骨架说明
-常用的maven命令
-仓库和坐标
-在eclipse安装和创建maven项目
-生命周期,pom.xml以及依赖、聚合、继承
-eclipse中创建web项目和jetty,tomcat插件的安装

Maven慕课网学习笔记相关推荐

  1. Android App压力测试(慕课网学习笔记)

    转载:https://blog.csdn.net/a923751813/article/details/72884826 一  背景 1. 为什么开展压力测试 目标1:提高产品稳定性(产品稳定性是一项 ...

  2. JavaWeb黑马旅游网-学习笔记01【准备工作】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  3. 通过慕课网学习Python

    通过慕课网学习Python.慕课网-Python入门 老师是:廖雪峰大神.我觉得他讲的非常好.另外,慕课网的练习形式我很喜欢,所以给大家推荐一下. 我买了两本书:<Python编程从入门到实践& ...

  4. JavaWeb黑马旅游网-学习笔记09【旅游线路收藏】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  5. JavaWeb黑马旅游网-学习笔记08【旅游线路详情】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  6. JavaWeb黑马旅游网-学习笔记06【旅游线路分页展示分页展示】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  7. JavaWeb黑马旅游网-学习笔记05【分类数据展示功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  8. JavaWeb黑马旅游网-学习笔记04【BaseServlet抽取】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  9. JavaWeb黑马旅游网-学习笔记03【登陆和退出功能】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

最新文章

  1. 用thinkphp进行微信开发的整体设计思考
  2. rest-framework url控制
  3. 转:万字总结:学习MySQL优化原理,这一篇就够了!
  4. 科大星云诗社动态20201222
  5. Cocos2d-x3.0 DrawNode吸取
  6. 第三次学JAVA再学不好就吃翔(part63)--String和int的相互转换
  7. Java反射机制是什么?
  8. hbase shell 命令行从入门到放弃
  9. Gorgeous Sequence线段树区间跟新
  10. JS 新浪API获取IP归属地
  11. 50道SQL练习题及答案与详细分析
  12. python绘制拟合曲线与样本点_python 拟合曲线并求参
  13. pyqt显示圆形图片
  14. MSF evasion模块的使用
  15. 4.顺序栈和循环队列的基本运算
  16. java 中心度_任务调度中心 (优化版)【原】
  17. jsp_02JSP隐含对象
  18. ResNet详解:ResNet到底在解决什么问题?
  19. mt4 python神经网络_用Python写MT4自动交易策略来炒外汇
  20. 『Java安全』XStream 1.4-1.4.61.4.10反序列化漏洞CVE-2013-7285复现与浅析

热门文章

  1. 周志华机器学习:决策树
  2. 可信验证与TPCM技术
  3. android 实用干货 - 收藏集 - 掘金
  4. 微信支付(一) - 企业付款到用户零钱
  5. 邮票问题---动态规划
  6. EXCEL表格-下拉列表的创建与基础函数联动
  7. 工作之路 - 上海泛微软件有限公司
  8. windows清理_CCleaner专业的windows清理工具【附专业版升级方法】
  9. 安卓平台 使用Jword生成word文档到本地【亲测成功】
  10. Proactor模型