解决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这个设计很脑残

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 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 文件未加载,所以在程序启动时,就找不到对应的映射文件,导致的这个错误. 解决

随机推荐