如何从Nexus公共仓库获取目标Gradle插件的jar包
Gradle仅拉取到Axelor插件pom未获取jar的解决方法
注意:com.axelor.app.gradle.plugin-xxx.pom是Gradle插件的标记点位文件,本身不包含插件实现代码,仅用于映射实际的插件jar坐标,拉取失败基本是配置错误或缓存损坏导致,按以下步骤操作即可:
- 修正插件仓库配置
不要仅在项目普通repositories块中配置Axelor Nexus仓库,自定义第三方插件仓库必须配置在settings.gradle的pluginManagement块中,否则Gradle只会从官方插件门户拉取标记pom,不会去自定义仓库拉取实际jar,正确配置示例:pluginManagement { repositories { maven { url = uri("https://repository.axelor.com/nexus/public/") } gradlePluginPortal() mavenCentral() } } - 清理本地损坏的缓存
先执行命令终止所有后台Gradle进程,避免缓存文件被锁定无法删除:./gradlew --stop
找到本地Gradle缓存路径下的对应插件目录,将5.4.13版本的整个缓存文件夹删除:- Linux/macOS路径:
~/.gradle/caches/modules-2/files-2.1/com.axelor.app.gradle.plugin/5.4.13/ - Windows路径:
C:\Users\当前系统用户名\.gradle\caches\modules-2\files-2.1\com.axelor.app.gradle.plugin\5.4.13\
- Linux/macOS路径:
- 强制刷新依赖重新拉取
在项目根目录执行带强制刷新参数的构建命令,让Gradle忽略本地缓存重新拉取完整文件:./gradlew build --refresh-dependencies
Windows环境将开头的./gradlew替换为gradlew.bat即可。 - 手动声明插件实现依赖(兜底方案)
如果上述步骤执行后仍无法自动拉取,可直接在项目根目录build.gradle的buildscript块中手动声明实际插件实现的classpath,跳过标记pom的自动解析逻辑,配置示例:
配置完成后正常应用buildscript { repositories { maven { url = uri("https://repository.axelor.com/nexus/public/") } mavenCentral() } dependencies { classpath "com.axelor.app:axelor-gradle:5.4.13" } }com.axelor.app插件即可。
内容的提问来源于stack exchange,提问作者Maher Ben Taleb Ali
相关产品推荐
相关产品推荐

