java中涉及到的Maven配置

-- 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)需要注意组织,项目表示,版本号.//这些是有依赖关系.

除了可以下载带maveneclipse,也可以单独在电脑上安装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组件的BxMaven自身在本地的仓库中会缓存B的很多版本,系统会默认提供一个B的版本,除非mavenPom.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等.

快速入门

请参考配置

参考资料