maven子项目的可运行jar包为何没有父的依赖

1原因

写这个笔记的原因是今天一个项目组想要在他本地运行我的工程,想直接给他个可运行的jar包,但是最近刚刚从eclipse换成idea,打包什么的还有些不习惯,怕给别人的jar包有问题,就想用解压工具看下里边的lib看下是否把依赖jar打进去了。事实证明idea的使用还是很优雅的,jar包没有任何问题,但是事后我突然发下,我是给一个子工程打可运行jar包,为什么在lib中没有看到父工程的jar,因为怕jar包有问题我赶紧在本地用命令运行了下,一切正常,也就是说父工程的jar存在否不影响子工程的运行。

2.问题及原因

这个结果对我还是听困惑的,因为maven的父子依赖,父工程替子工程管理版本,那么也就是说子工程的可运行jar包如果没有父的依赖,那么pom中的很多依赖就没有版本,那么也就是maven子工程运行时只要依赖的jar存在即可,而不会去判断jar的版本,jar包的版本仅仅时为了让maven从中央仓库或者私服上把jar包赋值下来。如此依赖子工程的可运行jar没有父工程也就说的通了。

3.其他

本地的一个spring boot工程本地为建立父工程,但是工程内引入了父工程spring-boot-starter-parent的jar包,解压查看里边只有pom文件,其主要的功能是帮助我们管理版本,因为很多版本之间时有冲突和依赖的,这种jar可以帮助我们快速建立工程和管理自己的版本。

### 回答1: Java项目中,jar包是一种常见的依赖方式,而Maven则是一种更加高级的依赖管理工具。二者的不同主要在以下几个方面: 1. 依赖管理方式不同:使用jar包方式,需要手动下载所需的jar包,并将其添加到项目中;而使用Maven则可以在pom.xml文件中声明依赖Maven会自动下载所需的jar包,并且可以管理依赖的版本、作用域等信息。 2. 依赖继承方式不同:使用jar包方式,如果一个项目依赖于多个jar包,需要手动处理这些jar包之间的依赖关系;而使用Maven则可以通过父子模块的继承关系,让模块自动继承模块的依赖,避免了手动处理依赖关系的繁琐工作。 3. Maven提供了更多的功能:Maven不仅提供了依赖管理的功能,还可以进行构建、测试、打包、发布等操作,可以帮助开发人员更加高效地管理项目。 总之,使用Maven能够更加方便地管理项目的依赖,避免了手动下载和处理依赖关系的繁琐工作。但是,如果只是一个简单的项目,使用jar包方式也是可以的。 ### 回答2: jar包方式和Maven依赖方式是Java中两种不同的方式来引入和管理外部依赖。 首先,使用jar包方式,我们需要手动将外部依赖jar包下载并保存在本地,然后将这些jar包添加到项目的classpath中。这种方式需要我们手动管理所有的依赖,包括版本控制和冲突解决,容易出现依赖冲突的问题。 而Maven依赖方式则通过在项目的pom.xml文件中声明所需的依赖Maven会自动从网络上下载这些依赖并保存在本地的仓库中。Maven还会根据依赖关系自动解决依赖冲突,并确保每个依赖库的正确版本。这种方式简化了依赖管理的过程,提供了更简单和可重复使用的项目构建和部署。 其次,使用jar包方式,我们需要手动下载和添加所有的依赖,工作量较大。而Maven依赖方式使用集中的仓库管理依赖的下载和更新,极大地减轻了人工管理的负担。 此外,使用jar包方式,项目中的所有依赖都需要手动管理,容易出现版本不一致的问题。而Maven依赖方式可以通过声明依赖到一个整体的项目管理系统,使得依赖的版本控制更加方便,减少了版本冲突的可能性,同时也方便了团队协作和持续集成。 综上所述,Maven依赖方式相对于jar包方式具有更加灵活和便捷的依赖管理方式,能够帮助我们更好地管理项目的依赖,提高开发效率。 ### 回答3: jar包方式和Maven依赖方式是软件开发中常用的两种方式来管理和使用第三方库。它们有以下不同之处: 1. 管理方式不同: - Jar包方式:开发人员需要手动下载第三方库的jar包,并将其添加到项目的classpath中。这种方式需要手动处理版本冲突和依赖关系。 - Maven依赖方式:使用Maven作为项目管理工具,在项目的配置文件(pom.xml)中声明依赖关系,Maven会自动下载并管理所需的jar包Maven会解决版本冲突,并递归处理所有的依赖关系。 2. 依赖管理: - Jar包方式:需要手动下载和管理所有所需的jar包,包括它们的版本兼容性。 - Maven依赖方式:只需在pom.xml中声明所需的依赖Maven会自动下载和管理所有的依赖。开发者只需关注需要的库,而不必担心版本兼容性和冲突问题。 3. 构建与部署: - Jar包方式:需要手动将所有的依赖jar包打包到可执行的jar文件中,然后手动部署到目标环境。 - Maven依赖方式:Maven会自动处理依赖并构建项目,生成可执行的jar文件。开发者只需使用Maven命令进行构建和部署,简化了整个过程。 4. 生态系统: - Jar包方式:开发人员需要在不同的库的官方网站或其他公共资源库搜索和下载所需的jar包。 - Maven依赖方式:Maven中央仓库是一个中央化的资源库,包含了大量常用的库,开发者只需在配置文件中指定库的GAV(Group ID、Artifact ID、Version)信息,Maven会自动从中央仓库下载所需的库。 总体来说,Maven依赖方式相对于Jar包方式更加方便和高效。它能够自动处理依赖关系、解决版本冲突,同时提供了更简单的项目构建和部署流程,使开发者能够更专注于业务逻辑的实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值