博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven整理
阅读量:6800 次
发布时间:2019-06-26

本文共 7289 字,大约阅读时间需要 24 分钟。

第一章 Maven安装

1.1 下载Maven库

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

1.2 解压下载的库,认识Maven库目录

  1. 备注: 解压文件尽量不要放在含有中文或者特殊字符的目录下。
  2. bin:含有mvn运行的脚本
  3. boot:含有plexus-classworlds类加载器框架
  4. conf:含有settings.xml配置文件
  5. lib:含有Maven运行时所需要的java类库
  6. LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍

1.3 配置Maven环境变量

1.右键我的电脑(或者计算机)-属性-高级系统设置-高级-环境变量-系统变量-新建MAVEN_HOME,只为maven的安装目录

2.把%MAVEN_HOME%\bin;追加到Path变量的值后面
3.检验是否成功:cmd-> mvn -v
4.修改配置文件:maven安装目录下conf目录中settings.xml

1.4 Maven配置文件(settings.xml)具体说明

1.localRepository:设置本地仓库:
C:\software\repository
2.pluginGroups:插件组合 3.proxies:代理 4.servers服务器(其中username和password是私服的用户名和密码,后续配置私服说明)
user-releases
admin
wangwujuan
user-snapshots
admin
wangwujuan
5.mirrors:镜像路径
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
6.profiles:服务器配置
nexusProfile
nexus
nexus
http://localhost:8081/nexus/content/groups/public/
true
true
public
Public Repositories
http://localhost:8081/nexus/content/groups/public/
jdk-1.8
true
1.8
1.8
1.8
1.8
7.activeProfiles:激活私服
nexusProfile
View Code

1.5 Maven仓库说明

1.本地仓库:存储在本地磁盘,默认在系统盘c盘 用户名/.m2/xx

通过settings.xml 更改本地仓库localRepository
2.远程仓库:一般都使用国内镜像或者公司自己搭建私服. 一般用Nexus
目的:加快下载速度
私服存在的意义:开发者电脑更新,本地仓库就有jar。目前常用的就是阿里镜像
3.Maven(中央)仓库:Maven团队维护的jar包仓库 http://repo1.maven.org/maven2/
一般用这个查POM:http://mvnrepository.com/

检索顺序:先检索本地仓库--再检索远程仓库--最后检索中央仓库

1.6 Maven管理项目周期

1. Clean:项目构建前的清理操作

2. Default: 核心生命周期核心过程:编译,运行,打包等等
3. Site:发布站点,生成报告等等,

第二章 创建Maven项目

2.1 Maven项目说明

src/main/java:存放项目的.java文件      src/main/resources:存放项目资源文件。如何Spring,Hibernate配置文件      src/test/java:存放所有测试的.java文件.如Junit测试类      src/test/resources:测试资源文件      target:项目数出位置(可以自动生成)      pom.xml(maven项目核心配置文件)       pom.xml默认内容介绍:        
4.0.0
com.sky
FirstMaven
1.0
war
View Code

2.2 Maven工程添加依赖

上网搜索依赖进行添加: 推荐网站:http://mvnrepository.com/示例:
org.hibernate
hibernate-core
5.2.10.Final
添加到项目的pom文件内容说明(切换pom.xml到Dependencies目录下): type:类型 取值说明: jar:jar包 Scope:声明jar包的存活时间 取值说明: 1、provided:编译和测试时需要 2、compile:编译、测试、运行、打包需要 3、runtime:测试、运行、打包需要 4、test:测试 5、system:编译和测试时需要,显示引用,Maven不会检索
View Code

2.3 修改maven工程的jdk版本号(两种方式)

方式一:在指定项目的pom.xml中添加如下话语(每个maven project或者maven  model都要配置):
org.apache.maven.plugins
maven-compiler-plugin
3.6.0
1.8
1.8
UTF-8
方式二:在maven的settings.xml中配置jdk插件(配置一次即可):放在
节点下即可
jdk-1.8
true
1.8
1.8
1.8
1.8
View Code

第三章 Maven依赖传递

1.什么是传递依赖?

依赖一个jar包往往会下载相互关联的jar包这就是依赖传递

2.依赖传递出现的问题

依赖传递出现的问题: 经常出现jar包冲突,

解决方案:直接排除指定的jar包

3.解决jar包冲突的方式(4种)

3.1 排除原则(常用)
org.springframework
spring-core
3.2 版本号限定原则
4.3.8.RELEASE
org.springframework
spring-context
${spring.version}
org.springframework
spring-context
3.3 第一声明原则(基本不用)
3.4 路径就近原则(基本不用)

4 依赖传递中的依赖范围

5.Maven常用命令

clean:清空

compile:编译
deploy:上传
test:单元测试
install:添加到本地仓库
tomcat:run 启动tomcat
package:打包

第四章 Maven继承

开发中多个项目有共同的jar包依赖,可以采用继承方式简化各个项目的pom文件,在父类的pom文件中依赖共同拥有的jar.

注意:
1.父级项目只能是pom打包方式。
2.子项目是一个Maven Project
示例: 创建一个pom项目,然后再创建另外的jar或war项目继承pom项目

第五章 Maven聚合

能够把项目的各个模块聚合在一起构建。一般用于分模块开发,最后整体打包发布。          Maven Model和Maven Project的区别?          Maven Project独立运行          Maven Model无法独立运行   注意:       1.根项目是一个pom项目。       2.子模块:Maven Model       3.每个模块写完后需要上传到私服       4.打包,需要整体打包找到最后的war项目使用Tomcat加载               实际中,我们会将一些庞大的项目拆分为若干模块进行开发        三层+MVC 如下:        model-------jar        dao----------jar        service------jar        web----------war

第六章 聚合与继承的关系

  • 聚合是为了方便快速构件项目。对于聚合模块来说,它知道有哪些被聚合的模块,但那些模块不知道这个聚合模块的存在;

  • 继承是为了消除重复配置。对于继承关系的父POM来说,它不知道有哪些子模块继承于它,但是子模块必须知道自己的父POM是什么

转载于:https://www.cnblogs.com/sueyyyy/p/9575470.html

你可能感兴趣的文章
h5 喜帖
查看>>
全局修改默认字体,通过反射也能做到
查看>>
直方图
查看>>
LeetCode: 【L4】N-Queens 解题报告
查看>>
首届HTML5原创游戏大赛将于6月10日拉开序幕
查看>>
8个对于Web设计和开发人员非常有用的在线工具
查看>>
iOS - (简单平移动画/弹出View的使用)
查看>>
Bloom Filter概念和原理
查看>>
SPOJ PGCD 4491. Primes in GCD Table && BZOJ 2820 YY的GCD (莫比乌斯反演)
查看>>
STL学习系列八:Set和multiset容器
查看>>
入门案例
查看>>
C++ 虚函数表解析(转)
查看>>
八数码问题及A*算法
查看>>
iOS:解决动画加阴影卡的问题
查看>>
PHP数组读取的循环操作
查看>>
[置顶] Oracle 11g Undo 表空间切换
查看>>
Andriod 环境配置以及第一个Android Application Project
查看>>
怎么解决浏览器兼容性问题
查看>>
从M个数中随机选出N个数的所有组合,有序,(二)
查看>>
hdu 1540 Tunnel Warfare(线段树区间统计)
查看>>