如何解决Quarkus 3阻塞本地Maven仓库修改的问题?
解决Quarkus 3.x阻塞本地Maven仓库的问题
运行中的Quarkus 3.x实例会锁定本地Maven仓库内它所使用的所有依赖文件,导致任何Maven任务(例如从中央仓库更新依赖)均会失败——该问题在Quarkus 2.x版本中不存在。
示例错误信息如下:
[INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project my-maven-goal: Could not resolve dependencies for project my-maven-jar:jar:99.0.0-SNAPSHOT: The following artifacts could not be resolved: some-library-also-used-by-runningquarkus:jar:99.0.0-SNAPSHOT (present): Could not transfer artifact some-library-also-in-by-runningquarkus:jar:99.0.0-20230713.110758-868: C:\m2_repository\path-to-some-library\99.0.0-SNAPSHOT\some-library-also-used-by-runningquarkus-99.0.0-SNAPSHOT.jar.7679739696874598221.tmp - C:\m2_repository\path-to-some-library\99.0.0-SNAPSHOT\some-library-also-used-by-runningquarkus-99.0.0-SNAPSHOT.jar
恢复无阻塞行为的方法
- 启用依赖文件复制到临时目录:在Quarkus配置中添加
quarkus.classpath.copy-dependencies=true,让Quarkus将依赖复制到应用专属的临时目录后再加载,不再锁定本地Maven仓库中的原文件。- 可直接在
application.properties文件中配置,或者启动时添加JVM参数:-Dquarkus.classpath.copy-dependencies=true
- 可直接在
- 使用Dev模式隔离仓库:如果是开发环境,启动Dev模式时添加参数
-Dquarkus.dev.remote-artifacts-repository=local,让Dev模式使用隔离的本地仓库副本,避免干扰主Maven仓库的操作。 - 临时降级到Quarkus 2.x:若上述配置无法解决问题,可暂时回退到Quarkus 2.x版本,直至官方修复该锁仓问题。
内容的提问来源于stack exchange,提问作者JPS
相关产品推荐
相关产品推荐

