-唯快不破-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. C# 中对COOKIES的操作
  2. 下一代防火墙信息收集(概念篇)
  3. python字符串可以保存在变量中吗_在python中可以从字符串变量实例化类吗?
  4. 一名3年工作经验的程序员应该具备的技能
  5. poj3278 CatchThatCow bfs
  6. 为什么微软账号被暂时停用_微软向Win10 20H2推出测试版更新KB4586853修复多种已知问题...
  7. mysql sql查询json数据类型_SQL中的JSON数据类型
  8. 如何将PDF每2页合并成横版的一页
  9. python 网格搜索_调参必备--Grid Search网格搜索
  10. 什么是域名,域名的购买流程是什么
  11. 百融云创被传赴港IPO急辟谣 旗下信贷业务存众多质疑
  12. GCN图卷积神经网络总结笔记
  13. 2021最新上海互联网公司排名
  14. Java数据可视化 (JavaFX, Apache ECharts)
  15. Java可以使用非0代表true吗?
  16. LPC1788和LPC1768时钟配置的差异
  17. AssistX vs2017查找函数和头文件快捷键
  18. 全网最火的5款免费脑图软件,最后一款亮了!
  19. Python实战案例,PIL模块,Python实现自动化生成倒计时图片
  20. Taro打卡日历组件。支持h5、ReactNative、后续支持小程序

热门文章

  1. c语言报名入口,考试报名入口
  2. 40道Java多线程面试真题及答案
  3. 好气色“吃”出来 7条守则缔造美肌—多喝水、喝对水
  4. 自定义光照烘焙和采样
  5. android jword.zip,Android 项目打包到 JCenter 的坑
  6. 国际城市如何畅想未来交通
  7. VirtualBox安装CentOS7虚拟机(超级无敌详细)
  8. 2021-06-11认识征信、了解征信,个人征信有什么影响?
  9. 傅里叶变换及低通滤波再反变换(C++opencv)
  10. 凝心聚力,不负好时光——慧慧兔团建拓展之旅