-- java项目中Maven仓库的配置管理
【官网】:#
应用场景
一般对于项目依赖或者仓库的管理,每种语言都有相关的工具机制,java中是maven,.net中是nuget.基础资源
无
使用须知
注意 maven自身的版本
配置步骤
1.)基本介绍.
Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具.
Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学了一点maven的人来说,就有些熟悉了,怎么通过pom.xml的配置就可以获取到jar包呢?pom.xml配置文件从何而来?等等类似问题我们需要搞清楚,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。
所以,根据上一段的描述,我们最终的目的就是学会如何在pom.xml中配置获取到我们想要的jar包,在此之前我们就必须了解如何创建maven项目,maven项目的结构是怎样,与普通java,web项目的区别在哪里,还有如何配置pom.xml获取到对应的jar包等等,这里提前了解一下我们如何通过pom.xml文件获取到想要的jar的,具体后面会详细讲解该配置文件.
[参考]https://www.cnblogs.com/whgk/p/7112560.html
[注1]关于pom.xml详解.
https://www.cnblogs.com/wkrbky/p/6353285.html
Pom.xml有聚合,继承,相对目录等各种灵活配置应用.
2.)处理Marven问题.
2.1)需要注意组织,项目表示,版本号.//这些是有依赖关系.
除了可以下载带maven的eclipse,也可以单独在电脑上安装maven:
https://blog.csdn.net/chenxuejiakaren/article/details/7938524
2.2)Maven仓库的位置.
在window下【Preferences】目录找到【Maven】下的【usersetting】
查看local repository 里面的路径.
通常情况下,找到了相关报错的包(比如安装的驱动,或者从中央仓库中下载的包文件)放到仓库对应目录(版本目录或项目标示的目录)下,之后刷新项目即可.
2.3)project/build/plugins/plugin/configuration节点下的Source,Target指的是java jdk的版本..因此需要和开发环境保持一致.
2.4)当出现大量的jar包没下载成功(missing)导致项目无法运行,需要重新强制更新.
右键项目,选择maven->update project… 在弹出来的窗口下面勾选Force Update of Snapshots/Releases 然后点击OK ,强制更新。 这样maven才会再次尝试,如果还不成功,那就从其他途径找来jar,直接加入本地仓库吧。
[注]一般来说如果无法自动下载,则手工去:http://mvnrepository.com/ 进行搜索下载指定版本的包.
2.5)当出现一些jar提示:cannot be read or is not a valid ZIP file.
步骤1)右键项目,选择build path,在其中的Libraries->Maven Dependencies->找到提示的jar的路径下,把对应文件删除掉.
步骤2)右键项目,选择maven->update project…
[注]如果是单独安装的maven,则可以在项目下执行命令:开始—运行—cmd—进入到web项目所在路径(cd:web项目的路径)—(a)输入mvn compile(编译源代码)回车;(b) mvn clean (清除目标目录中的生成结果)回车;(c)输入mvn clean install或者mvn clean install -DskipTests=true(下载所需jar)回车。
2.6)确定Maven项目中A组件A1版本依赖的B组件的B1版本是对应.
通常情况下可能查资料发现A组件的一个版本Ax需要依赖B组件的Bx,但Maven自身在本地的仓库中会缓存B的很多版本,系统会默认提供一个B的版本,除非maven的Pom.xml中有指定, 之后执行Maven->update project 操作.
指定后,在这个Maven的依赖库中需要能核对生效的版本:
2.7)关于”java.lang.NoClassDefFoundError”与”java.lang.ClassNotFoundException”类问题的解决.
[场景1]如果没有用仓库管理比如maven,gradle之类的,则需要寻找相关jar放到系统目录下.
[场景2]如果使用了仓库管理比如maven,gradel则,需要修改依赖的文件,比如pom.xml,gradle.json等.
[注1]有些项目,比如spark安装目录下的jar下就是用到的相关的jars,可以参考着其用到的jar,并结合本地仓库缓存修改pom.xml.
如果无法下载到,则直接在上述spark安装目录下的jar目录下,复制相关文件,按照pom设置的组织,版本要求放置到相关目录下.
[注2]如果实在不行,也可以直接引用.
常见问题
-
”java.lang.NoClassDefFoundError”与”java.lang.ClassNotFoundException”
【解决方案】[场景1]如果没有用仓库管理比如maven,gradle之类的,则需要寻找相关jar放到系统目录下. [场景2]如果使用了仓库管理比如maven,gradel则,需要修改依赖的文件,比如pom.xml,gradle.json等.
快速入门
请参考配置