发布时间:2025-08-07
浏览次数:0
本文将深入探讨,在使用过程中,通常都会设置maven的本地仓库。那么,我们能否直接利用maven本地仓库中的jar包呢?接下来,我们将对此进行一番探究。
思考
使用过程中,若配置了一个括号符号,则表示将调用maven的本地仓库;那么,此时我们是否直接使用了maven本地仓库中的jar包呢?新版本似乎能够直接利用maven仓库中的jar包,而老版本似乎则无法做到这一点。
验证方式
: 7.1
我将maven的仓库与其它仓库合并至同一目录之下,以观察此举将带来何种影响;若依赖的jar文件仅存在一个版本,则表明它们已被共享使用。
准备环境配置maven 的
为了进行测试,我先将maven配置文件中的指定路径更改为一个空白的文件夹。
禁止对Johnny用户目录下的Maven仓库测试目录进行修改。
配置 的默认本地仓库
默认仓库位置为
~/.//-2/files-2.1/....
那么,我们该如何调整这个位置呢?这需要我们进行环境变量的设置,并明确指出新的目录路径。
这里把 的本地仓库配置到如下的目录 和 maven 一致
设置GRADLE_USER_HOME环境变量为路径:/Users/johnny/.m2/repository_maven_gradle_test,以此指定Gradle的本地仓库位置。
创建maven 项目
#随便找个目录执行 ,我这里就在 ~/.m2/下执行的
mkdir maven_project_demo
进入maven_project_demo目录下的pom.xml文件进行操作。
在pom.xml文件中添加相应内容intellij idea gradle,随意引入一个jar包,本次选取了一个作为示例。
4.0.0
com.johnny
mavenprojectdemo
0.0.1-SNAPSHOT
mavenprojectdemo
mavenprojectdemo
org.projectlombok
lombok
1.18.24
创建 项目
通过 提供的init方式直接初始化
gradle init
请选择项目类型以进行生成。
1: basic
2: application
3: library
4: Gradle plugin
请输入选项(默认为基本选项)[1至4],键入数字2。
请选择实施所用的编程语言:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Scala
6: Swift

请输入选择(默认为Java)[1至6],键入数字3。
是否将功能分配至多个子项目中?
仅有一个申请项目获准。
同意——应用和库项目
请输入选择(默认为无 - 仅一个应用项目)[1至2],选项1。
Select build script DSL:
1: Groovy
2: Kotlin
请输入选择(默认为Groovy)[1至2],输入1。
Select test framework:
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
请输入选择(默认为JUnit Jupiter)【1至4】,默认选项为1。
项目名称(默认为gradle_project_demo):gradle_project_demo项目
源代码包(默认为 gradle_project_demo):johnny的gradle项目示例
build.添加
实施团队:org.projectlombok,项目名称:lombok,版本号:1.18.24,
验证maven项目执行下载依赖
cd maven_project_demo
使用mvn命令进行clean操作,随后执行compile命令。
此时查看
仓库目录 已经有了依赖
项目执行下载依赖
cd gradle_project_demo
gradle classes # gradle 编译命令
再次查看 仓库发现多了一个
cd 到 caches/modules-2/files-2.1 目录,这是gradle默认的jar文件存放位置。
可以发现 并没有 org.
通过使用idea打开的jar文件,我们查看了其依赖项的存放位置,结果证实它确实直接引用了maven中的jar包。这种现象或许可以归因于新版本的一项优化措施?
反过来 执行
创建名为repository_maven_gradle_test的代码仓库。
rm -rf * #先清空仓库
cd gradle_project_demo
总结
鉴于对思考与Maven本地仓库设置相仿的考量,经过对Jar文件是否可共享的深入研究intellij idea gradle,我们得出以下结论:
本地仓库位于 ~/.//-2/files-2.1/...,只需配置环境变量使其指向相应目录,仓库即自动设定为该路径。若将配置设定为maven本地仓库,新版本的jar包确实可直接在maven中使用。然而,不建议将此仓库配置与Maven仓库相同,最好分设或直接采用默认设置,因为两者的jar包管理方式存在差异。部分网络文章提到只需将maven仓库中的jar复制到该处,但这可能是针对旧版本的做法。我进行的7.1版本实验中,并未发现复制现象。
多思考! 多实践!
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码