解决Maven项目本地公共common包缓存问题
目录
- Maven项目本地公共common包缓存
- 问题
- 解决方法
- maven缓存导致的问题
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缓存导致的问题
今天遇到一新问题,无论如何更新pom文件,mvn eclipse:eclipse 命令都未能将jar包引入进来,但是又不报错。
试着将jar包搞成一个本地库不存(远程库也不存在)在的版本,再次mvn eclipse:eclipse结果立即报错,说不存在此依赖包,这就无语了,没有jar包的你说我没有,有jar包你又不给我引进来。
经过反复折腾,先将本地库的jar包删除,再mvn eclipse:eclipse ,就可以了,如果远程仓库没有,则mvn eclipse:eclipse后只需mvn install到本地即可。
解决了这个问题。maven自作聪明,搞得很智能的样子,但是不知道的坑死别人,一句话,maven这个设计很脑残
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
IDEA强制清除Maven缓存的方法示例
重新导入依赖的常见方式 下面图中的刷新按钮,在我的机器上,并不能每次都正确导入pom.xml中写的依赖项,而是导入之前pom.xml的依赖(读了缓存中的pom.xml). 当然除了这些,还可以下面这样: 存在的问题 上面虽然是重新导入Maven依赖,按理说,IDEA应该根据当前最新的pom.xml来导入依赖: reimport操作常常不能导入当前最新的pom.xml中规定的依赖,因为有一种东西叫"缓存",IDEA在每次打开项目的时候,就会产生缓存(为了提升运行速度和效率),但是此时,却
-
Maven本地缓存清理小工具的实现
有个时候多人多team协作开发过程中,会存在临时修改的二方包,同样版本需要重新拉取的情况.发现大部分人包括自己长久以来也是采用最原始的方法,一层层找到对应的目录删除对应的文件.某天实在是受不了了,写了个小工具分享下,小代码解决小问题. 外部依赖:fastjson,commons-io,commons-lang3,不要嘲笑,有工具干嘛不用呢,非得造轮子吗. import com.alibaba.fastjson.JSON; import org.apache.commons.io.FileUtil
-
Maven配置项目依赖使用本地仓库的方法汇总(小结)
Maven配置项目使用本地仓库有以下方式实现: 1.类似本地仓库,但是属于本地依赖,比如某个JAR包是引用第三方的,直接放在了项目的lib文件夹,那么此时可以如下配置项目的POM: <dependency> <groupId>ldapjdk</groupId> <artifactId>ldapjdk</artifactId> <scope>system</scope> <version>1.0</vers
-
解决Maven项目本地公共common包缓存问题
目录 Maven项目本地公共common包缓存 问题 解决方法 maven缓存导致的问题 Maven项目本地公共common包缓存 背景:Spring Cloud + Maven,Maven仓库在本地开发. 开发工具:intellij idea 项目架构:SpringBoot微服务分布式架构 ps:STS缓存更严重(MyEclipse的Spring插件版是:STS) 越来越多的Web项目采用Maven构建版本管理和控制以及第三方资源库文件的的工具,主流的如:SSM架构,SpringCloud+M
-
maven导入本地仓库jar包,报:Could not find artifact的解决
目录 maven导入本地仓库jar包报:Could not find artifact 1.检查本地仓库 2.接着检查idea的maven配置 3.猜测可能是因为maven会先去网上的中央仓库获取jar包 4.设置好后 5.注意离线工作后 总结 maven导入本地仓库jar包报:Could not find artifact idea使用maven导包,报错: 1.检查本地仓库 发现jar包存在: 2.接着检查idea的maven配置 确实配置了本地仓库: 3.猜测可能是因为maven会先去网上
-
java application maven项目打自定义zip包实例(推荐)
1.配置pom.xml文件,添加build节点 <build> <!-- 输出的包名 --> <finalName>p2p</finalName> <sourceDirectory>src/main/java</sourceDirectory> <resources> <!-- 控制资源文件的拷贝(默认复制到classes目录,最后打进jar包) --> <resource> <directo
-
解决Maven 项目报错 java.httpservlet和synchronized使用方法
使用java8 的lanmbe表达式时,使用java1.8编译,则会报错 需要在pom.xml的<bulid></build>中添加 <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</versi
-
导出maven项目依赖的jar包(图文教程)
注意使用mvn命令是需要配置好maven的环境变量 一.导出到自定义目录中 在maven项目下创建lib文件夹,输入以下命令: mvn dependency:copy-dependencies -DoutputDirectory=lib maven项目所依赖的jar包都会复制到项目目录下的lib目录下 这是我需要导出的jar包: 项目的根目录: 打开cmd,进入项目根目录(pom.xml文件也在这里),并执行目录,lib文件如没有手动创建也会自动创建: 稍等片刻,maven便完成了复制 二.导出
-
Intellij IDEA中如何查看maven项目中所有jar包的依赖关系图
Maven 组件界面介绍 如上图标注 1 所示,为常用的 Maven 工具栏,其中最常用的有: 第一个按钮:Reimport All Maven Projects 表示根据 pom.xml 重新载入项目.一般单我们在 pom.xml 添加了依赖包或是插件的时候,发现标注 4 的依赖区中没有看到最新写的依赖的话,可以尝试点击此按钮进行项目的重新载入. 第六个按钮:Execute Maven Goal 弹出可执行的 Maven 命令的输入框.有些情况下我们需要通过书写某些执行命令来构建项目,就可以通
-
解决vue项目本地启动时无法携带cookie的问题
解决vue项目打包部署到服务器上可以正常登录,本地启动时无法携带cookie 说一下问题:公司的老项目,从gitLab上克隆下来,启动之后登录,接口返回登录成功,然后又调用其他的接口的时候返回未登录,查看请求头,未携带cookie,因此调用接口的时候提示未登录. 但是同样的代码打包部署之后一切正常,调接口的时候是携带cookie的,一通百度之后终于解决了. 我用的是谷歌chrome浏览器 解决步骤如下: 1.在浏览器地址栏访问chrome://flags 2.搜索框内搜索SameSite,然后把
-
maven项目引用外部jar包的方法
问题描述: 有一个java maven web项目,需要引入一个第三方包gdal.jar,但是这个包是自己打包的,在maven中央库里面找不到该包,因此我采用传统的方式,将这个包拷贝到:项目名称\src\main\webapp\WEB-INF\lib的目录下,然后通过config build path将该gdal.jar包引入到项目工程中.对于传统java web项目,这么做当然没有问题,但是对于maven项目,项目打包(mvn install)时就会报错,在项目调试时(debug on ser
-
Maven项目打包成war包部署到Tomcat的方法
有关于 Maven 项目的打包部署,我这里用的是 Eclipse 编辑器,以此来做个简单的记录. 实践环境 操作系统: Windows IDE: Eclipse 打包部署过程 1 项目打包 1.1 右键点击所需要打包的项目,点击如图所示 Maven clean,这里 Maven 会清楚掉之前对这个项目所有的打包信息. 1.2 进行完 Maven clean 操作后,在eclipse的控制台会出现以下的信息. 1.3 然后我们重新右键所需打包的项目,点击如图所示 Maven build 1.4 在
-
解决Maven项目中 Invalid bound statement 无效的绑定问题
问题 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 关于这个问题,我的是 Maven 项目,在访问程序的接口时,抛出异常信息,无效的绑定语句. 在检查调用的 Mapper 接口时,发现在目标文件中没有找到 Mapper 映射的配置文件,在项目的 target 目标文件中可以看到,与接口对应的 Mapper 文件未加载,所以在程序启动时,就找不到对应的映射文件,导致的这个错误. 解决
随机推荐
- 使用SQL Server连接服务器访问DB2 Server
- PhpDocumentor 2安装以及生成API文档的方法
- JSP中EL表达式的用法详解(必看篇)
- vue2利用Bus.js如何实现非父子组件通信详解
- 用批处理实现禁止运行指定程序
- 不可不知道的10个java谎言
- 很棒的一组js图片轮播特效
- asp.net 一个封装比较完整的FTP类
- js验证手机号码
- MongoDB 学习笔记(一)-MongoDB配置
- SQL Server误区30日谈 第11天 镜像在检测到故障后瞬间就能故障转移
- Java 生成随机字符串数组的实例详解
- DIV+CSS+JS 变灰弹出层
- Nginx HTTP:413 Request Entity Too Large解决方法
- Nginx下支持Thinkphp URL Rewrite的配置示例
- php-fpm开启状态统计的方法详解
- Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法(后台订单支付API设计)
- “劲舞团服务器端”配置文件分析
- java实现打印正三角的方法
- selenium+java破解极验滑动验证码的示例代码