依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成了包版本冲突。所以说为什么说一个大型项目稳定后,pom文件的升级是件繁琐的事情,那是因为考虑的东西是在太多了,稍有不慎就会因为依赖冲突而导致系统报错。
介绍Maven 是一种广泛使用的 Java 项目构建自动化工具。它简化了构建过程并帮助管理依赖关系,使开发人员的工作更加轻松。在这篇博文中,我们将讨论一些最佳实践、提示和技巧,来优化 Maven 使用并改善你的 Java 开发体验。
一、什么是Maven?Apache Maven是一个软件项目管理的综合工具。基于项目对象模型(POM)的概念,提供了帮助管理构建、文档、报告、依赖、发布等方法,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。
compile :表示当前模块在程序的各个阶段都可能被使用,如 编译 运行 测试 打包等。provided :表示当前模块在编译 运行 测试阶段可能被使用 ,在程序打包时不需要 如 jsp-api ,sevlet-api在tomcat上进行发布时将不需要进行提供否则将会产生依赖冲突。
Maven大家都很熟悉,但是我们很多人,对它其实都是似乎很熟,但是又好像不熟悉的感觉,包括我,今天咱们就一起来彻底了解Maven的所有功能,我们从入门,到原理剖析,再到实践操作,最后是私服的搭建以及配置,整体并彻底了解一下Maven。
MavenGradle作为新的构建工具,基于 Groovy 语言的构建工具,既保持了 Maven 的优点,通过使用 Groovy 定义,克服了 Maven 中使用 XML 繁冗以及不灵活等缺点,它最后被 google 作为了 Android 御用管理工具。
即便是所要依赖的工程依赖了其它工程,我们也只需引入项目所直接的依赖的工程。如下图示例中 Dependency-A 引用了 Dependency-B ,而 Dependency-B 又依赖于 Dependency-C ,在传统项目中若在 Dependency-A 中引用 Dependency-B 则需要同时手动添加 Dependency-B 与 Dependency-C 所对应的 JAR 包,但在 Maven 中我们只需要引入 Dependency-B 即可, Mavne 会自动将子模块所依赖的包导入。