论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
数据库
›
Mysql
›
maven配置步骤及问题
maven配置步骤及问题
涛声依旧在
金牌会员
|
2022-8-26 16:32:22
|
显示全部楼层
|
阅读模式
楼主
主题
984
|
帖子
984
|
积分
2952
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
一、Maven->conf->settings.xml文件配置
E:\szsgg\video\4maven\apache-maven-3.5.4\conf\setting配置
1.
配置本地仓库
E:\szsgg\video\4maven\repo
2.
配置下载网站地址
nexus-aliyun
central
Nexus aliyun
http://maven.aliyun.com/nexus/content/groups/public
3.
配置JDK环境
jdk-1.8
true
1.8
1.8
1.8
1.8
二、idea创建maven工程
创建空工程
File->new->project->Empty project
空工程中创建maven模块
New->module->创建,需要特别注意标红地方,父工程选none,工程路径确保在工程下而不是模块下
三、Maven工程中易出现的问题?
1.
在一个模块调用另一个模块进行test报错?
有可能是配置文件没有进行导入依赖,先查看是否导入
可能是模块的jar包没有放到仓库中,需要将模块jar包放置本地仓库
步骤: 找到此工程->选择install命令放置到仓库再次运行即可
2.
依赖范围可见性问题
compile(默认就是这个范围)
(1)main目录下的Java代码
可以
访问这个范围的依赖
(2)test目录下的Java代码
可以
访问这个范围的依赖
(3)部署到Tomcat服务器上运行时
要
放在WEB-INF的lib目录下
例如:对Hello的依赖。主程序、测试程序和服务器运行时都需要用到。
2)test
(1)main目录下的Java代码
不能
访问这个范围的依赖
(2)test目录下的Java代码
可以
访问这个范围的依赖
(3)部署到Tomcat服务器上运行时
不会
放在WEB-INF的lib目录下
例如:对junit的依赖。仅仅是测试程序部分需要。
3)provided
(1)main目录下的Java代码
可以
访问这个范围的依赖
(2)test目录下的Java代码
可以
访问这个范围的依赖
(3)部署到Tomcat服务器上运行时
不会
放在WEB-INF的lib目录下
3.
依赖的间接传递性
当存在间接依赖的情况时,主工程对间接依赖的jar可以访问吗?这要看间接依赖的jar包引入时的依赖范围——只有依赖范围为compile时可以访问。例如:
Maven工程
依赖范围
对A的可见性
A
B
C
compile
√
D
test
×
E
provided
×
4.
如何解决依赖间的冲突问题?
1.路径最短者优先,当本工程依赖或间接依赖两个不同的版本时,采用离本工程最近的工程
2.路径相同时先声明者优先
这里“声明”的先后顺序指的是dependency标签配置的先后顺序,也就是本工程依赖写在xml文件中最前面的jar包
5.
如何将依赖中不需要的jar包去掉?也叫依赖的排除
在pro.xml中找到所导入的依赖,添加以下代码,切记需要添加到dependency标签下
junit
junit
6.
自定义标签(解决依赖过多时修改版本号一事)
以对Spring的jar包依赖为例:Spring的每一个版本中都包含spring-context,springmvc等jar包。我们应该导入版本一致的Spring jar包,而不是使用4.0.0的spring-context的同时使用4.1.1的springmvc。
但是如果我们一个一个修改,就会很麻烦。所以我们可以自定义一个标签进行统一管理依赖的版本号,类似于java中的变量赋值,当需要修改时就可以统一修改,此标签需要写在pro.xml的最上面
4.0.0.RELEASE
7.
生命周期
什么是Maven的生命周期?
Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化的执行构建命令了。
Maven有三套相互独立的生命周期,分别是:
Clean Lifecycle在进行真正的构建之前进行一些清理工作。
Default Lifecycle构建的核心部分,编译,测试,打包,安装,部署等等。
Site Lifecycle生成项目报告,站点,发布站点。
再次强调一下它们是
相互独立的
,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行
mvn clean install site
运行所有这三套生命周期。
每套生命周期都由一组阶段(Phase)组成,我们平时在命令行输入的命令总会对应于一个特定的阶段。比如,运行mvn clean,这个clean是Clean生命周期的一个阶段。有Clean生命周期,也有clean阶段。
生命周期与自动化构建
运行任何一个阶段的时候,它前面的所有阶段都会被运行
,例如我们运行mvn install 的时候,代码会被编译,测试,打包。这就是Maven为什么能够自动执行构建过程的各个环节的原因。此外,Maven的插件机制是完全依赖Maven的生命周期的,因此理解生命周期至关重要。
四、
继承
使用继承机制就可以将这样的依赖信息统一提取到父工程模块中进行统一管理。
1.
创建
父工程
(1)父工程的打包方式为pom
com.atguigu.maven
Parent
pom
1.0-SNAPSHOT
(2)父工程只需要保留pom.xml文件即可。
2.
在
子工程中
引用
父工程
(1)父工程坐标
...
...
...
..
(2)继承
com.atguigu.maven
Parent
1.0-SNAPSHOT
../Parent/pom.xml
此时如果子工程的groupId和version如果和父工程重复则可以删除
3.
在
父工程中管理依赖
(1)将Parent项目中的dependencies标签,用dependencyManagement标签括起来。
junit
junit
4.0
test
(2)在子项目中重新指定需要的依赖,删除范围和版本号。
junit
junit
五、
酷站
我们可以到http://mvnrepository.com/搜索需要的jar包的依赖信息。
http://search.maven.org/
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
涛声依旧在
金牌会员
这个人很懒什么都没写!
楼主热帖
MySQL基本SQL语句之高级操作
Juc并发编程12——2万字深入源码:线程 ...
史上最全MongoDB之部署篇
IOS OpenGL ES GPUImage 图像黑白色调 ...
【云原生】裸金属架构之服务器安装VMWa ...
Flink-基于 DataStream API 实现欺诈检 ...
一文读懂K-Means原理与Python实现 ...
大数据ETL开发之图解Kettle工具(入门 ...
Mysql进阶优化篇01——四万字详解数据 ...
为什么说 Go 语言字符串是不可变的? ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
程序人生
Oracle
快速回复
返回顶部
返回列表