Maven概念知识

内容转载自:https://blog.youkuaiyun.com/u010425776/article/details/52027706
什么是Maven?
简单来说,Maven就是一款帮助程序员构建项目的工具,他会帮我们管理jar包。管理项目的生命周期。
基本命令?
-v : 查询maven版本。
compile:编译
将java源文件编译成class文件
test:测试项目
执行test目录下的测试用例
package:打包
将项目打包成jar或者war包
clean:
删除target文件夹
install:
将当前项目放到Maven的本地仓库中。供其他项目使用。

在maven中,坐标是jar包的唯一标识,maven通过坐标在仓库找到项目所需的jar包。
在这里插入图片描述
groupId:所需jar包的项目名,artifactId:所需jar包的模块名,version:所需jar包的版本号。

若多个项目中多个jar同时引入了相同的jar时,会产生依赖冲突,Maven采用了两种策略避免冲突:
短路优先:
在这里插入图片描述
声明优先:
若引用路径长度相同,在pom文件中谁先被声明,就使用谁。

聚合:
将多个项目作为module引入到pom文件中即可。

dependencyManagement
只能出现在父pom里
统一版本号
只是声明依赖,并不直接引入依赖,需要时在子项目中生命需要使用的依赖的groupId,artifactId信息,version可以省略。

scope
compile:编译依赖范围,在编译,测试,运行时都需要,依赖范围默认值
test:测试依赖范围,测试时需要。编译和运行不需要,如junit
provided:已提供的依赖范围,编译和测试时需要,运行时不需要,如servlet-api
runtime:运行时依赖范围,测试和运行时需要。编译不需要,例如面向接口编程,JDBC驱动实现jar
system:系统依赖范围,本地依赖,不在maven中央仓库。

依赖排除
使用exclusions来排除不需要使用jar。

依赖关系查看
mvn dependency:tree 命令会列出依赖关系树及各级依赖关系
mvn denpendency:analyze 分析依赖关系

maven的版本号常见有两种,一种是以-RELEASE 结尾,一种是以-SNAPSHOT几位。在企业私服中,会存在
snapshot快照仓库和release发布仓库,snapshot快照仓库用于保存开发过程中的不稳定版本,release仓库则是
用来保存稳定的发型版本。

maven会根君模块的版本号(pom文件中的version)是否带有-SNAPSHOT来判断是快照版本还是正式版本,根据
这个来判断是发布到快照仓库还是正式仓库中。

parent:模块间根据这个标签进行继承关系。
dependencyManagement 只进行版本管理,不会引入实际的jar包,而dependency则会下载实际的jar包。
jar包版本判断的两种路径:
如果dependencies里的dependency自己没有声明version元素,那么maven就会到denpendencyManagement里面去找有没有
对该atrifactId和groupId进行过声明,如果有就继承他,如果没有就会报错。
如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。

dependency中还引入了scope,主要管理依赖的部署:
compile:缺省值,适用于所有阶段,会随着项目一起发布。
provided:类似于compile,期望JDK,容器或使用者会提供这个依赖,如servlet.jar。因为这个servlet.jar会在容器里或者tomcat里存在,这个jar不会被打包。
runtime:只在运行时使用,如JDBC驱动,适用于运行和测试阶段。
test:只用在测试阶段,不会随项目发布。
system:类似provided,需要显式提供包含依赖的jar,maven不会再仓库里查找他。

内容概要:本文围绕六自由度机械臂的人工神经网络(ANN)设计展开,重点研究了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程,并通过Matlab代码实现相关算法。文章结合理论推导与仿真实践,利用人工神经网络对复杂的非线性关系进行建模与逼近,提升机械臂运动控制的精度与效率。同时涵盖了路径规划中的RRT算法与B样条优化方法,形成从运动学到动力学再到轨迹优化的完整技术链条。; 适合人群:具备一定机器人学、自动控制理论基础,熟悉Matlab编程,从事智能控制、机器人控制、运动学六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)建模等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握机械臂正/逆运动学的数学建模与ANN求解方法;②理解拉格朗日-欧拉法在动力学建模中的应用;③实现基于神经网络的动力学补偿与高精度轨迹跟踪控制;④结合RRT与B样条完成平滑路径规划与优化。; 阅读建议:建议读者结合Matlab代码动手实践,先从运动学建模入手,逐步深入动力学分析与神经网络训练,注重理论推导与仿真实验的结合,以充分理解机械臂控制系统的设计流程与优化策略。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值