Maven项目本地公共common包缓存问题

背景 :  Spring Cloud + Maven,Maven仓库在本地开发。

开发工具:intellij idea

项目架构:SpringBoot微服务分布式架构

ps:STS缓存更严重(MyEclipse的Spring插件版是:STS)

越来越多的Web项目采用Maven构建版本管理和控制以及第三方资源库文件的的工具,主流的如:SSM架构,SpringCloud+Maven等。

    Maven在版本管理和第三方资源库文件引入方面相对于其他工具来说,体现了非常明显的优势。

不过在使用过程中,也会有些缺陷:

    这个缺陷体现在Maven缓存方面,当采用本地仓库方式时,这种问题尤为明显。

项目分为多个模块,因此有采用多个子系统分库分表开发,这样就会有些公共资源代码抽离出来用Common包封装好,

以本地jar包形式大家都可以方便调用,而不用每个项目都写一些重复的代码造成冗余(传统架构缺点)。

问题:当Common包更新后,并发布到仓库后。在本地开发工具项目鼠标右键——>Maven——>ReImport 如下:

或者找到项目的pom.xml配置文件右键:Maven——>ReImport或打开文件后,鼠标右键:Maven——>ReImport

均可以重新引入更新后Cmomon包内容,但有时由于缓存原因,明明ReImport了就是无效。这时候请别怀疑别人没有更新发布,而是缓存的问题。

解决方法:

找到本地仓库Common包路径,如我本地:C:\Users\Administrator\.m2\repository\com\epa*ks\e*s\common\

把该路径下的所有项目删除,然后重新ReImport项目,问题解决。

注:编译后的本地项目jar包是无法删除。

 

 

同名原创公众号:程序大视界

 

### 如何在 Maven本地安装 JAR #### 基本概念 Maven 是一种强大的构建工具,它通过中央仓库管理和分发依赖项。然而,有时开发者需要将某些未托管在公共仓库中的第三方 JAR 手动安装到本地 Maven 仓库中以便项目使用[^1]。 --- #### 步骤详解 ##### 1. **准备环境** 确保系统已正确配置 Maven,并且可以通过命令行调用 `mvn` 命令。如果尚未设置,请先完成 Maven 的全局变量配置(如 MAVEN_HOME 和 PATH),并验证版本信息是否正常显示: ```bash mvn -v ``` ##### 2. **获取目标 JAR ** 将要安装的目标 JAR 文件放置在一个易于访问的位置,比如桌面或特定的工作目录下。假设该文件名为 `example-library-1.0.jar`。 ##### 3. **运行安装命令** 使用以下命令格式将 JAR 安装至本地仓库: ```bash mvn install:install-file \ -Dfile=<path-to-file> \ -DgroupId=<group-id> \ -DartifactId=<artifact-id> \ -Dversion=<version> \ -Dpackaging=jar ``` 其中各参数含义如下: - `-Dfile`: 指定待安装的 JAR 文件绝对路径。 - `-DgroupId`: 自定义项目的组 ID,通常表示公司域名反向书写形式(例如 com.example)。 - `-DartifactId`: 表示模块名或库名称。 - `-Dversion`: 版本号字符串。 - `-Dpackaging`: 明确声明打类型为 jar。 以实际例子说明: ```bash mvn install:install-file \ -Dfile=C:\Users\User\Desktop\example-library-1.0.jar \ -DgroupId=com.mycompany.lib \ -DartifactId=example-library \ -Dversion=1.0 \ -Dpackaging=jar ``` 此过程完成后,JAR 将被存储于由 settings.xml 文件 `<localRepository>` 字段所指代的默认位置下的相应子目录结构之中[^1]。 ##### 4. **注意事项** - 如果遗漏了必要的依赖描述符,则可能导致编译错误或其他异常行为。因此当发现新加入的组件存在额外需求时,应考虑补充完整的 POM 定义[^2]。 - 解决方案之一是从原始发行版提取嵌套元数据文档 (*.pom*) 并复制粘贴进本地副本里匹配区域,从而让后续使用者获得一致性的体验效果[^2]。 --- #### 示例代码演示 假设有这样一个场景——我们拥有一个独立开发出来的实用类集合体 common-utils.jar ,现在想把它纳入现有工程体系当中去共享复用起来: 第一步:定位到它的物理存放地点; 第二步:执行标准化导入流程; 第三步:更新 pom.xml 引入新的条目即可无缝衔接啦! ```xml <dependency> <groupId>com.myproject</groupId> <artifactId>common-utils</artifactId> <version>1.0-SNAPSHOT</version> </dependency> ``` 最后再次强调一点就是每次做完类似改动之后记得清理缓存重建索引来同步最新的变动情况哦! --- ### 总结 通过上述方法可以轻松实现自定义 Jar 本地化集成工作流,既满足个性化定制诉求又保持整体架构清晰有序不混乱的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序大视界

原创不易,请给点支持和鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值