一、问题描述
使用 RuoYi-Vue 开源项目的过程中,在 ruoyi-admin 模块下进行工程打 war 包时,报出了一下错误。
项目的 SSH 地址:
git@gitee.com:y_project/RuoYi-Vue.git
复制代码
错误截图如下:
部分错误日志如下:
[INFO]
[INFO] -----------------------< com.ruoyi:ruoyi-admin >------------------------
[INFO] Building ruoyi-admin 3.8.5
[INFO] --------------------------------[ war ]---------------------------------
Downloading from public: https://maven.aliyun.com/repository/public/com/ruoyi/ruoyi-framework/3.8.5/ruoyi-framework-3.8.5.pom
Downloading from alimaven: http://maven.aliyun.com/nexus/content/repositories/central/com/ruoyi/ruoyi-framework/3.8.5/ruoyi-framework-3.8.5.pom
[WARNING] The POM for com.ruoyi:ruoyi-framework:jar:3.8.5 is missing, no dependency information available
Downloading from public: https://maven.aliyun.com/repository/public/com/ruoyi/ruoyi-quartz/3.8.5/ruoyi-quartz-3.8.5.pom
Downloading from alimaven: http://maven.aliyun.com/nexus/content/repositories/central/com/ruoyi/ruoyi-quartz/3.8.5/ruoyi-quartz-3.8.5.pom
[WARNING] The POM for com.ruoyi:ruoyi-quartz:jar:3.8.5 is missing, no dependency information available
Downloading from public: https://maven.aliyun.com/repository/public/com/ruoyi/ruoyi-generator/3.8.5/ruoyi-generator-3.8.5.pom
Downloading from alimaven: http://maven.aliyun.com/nexus/content/repositories/central/com/ruoyi/ruoyi-generator/3.8.5/ruoyi-generator-3.8.5.pom
[WARNING] The POM for com.ruoyi:ruoyi-generator:jar:3.8.5 is missing, no dependency information available
Downloading from public: https://maven.aliyun.com/repository/public/com/ruoyi/ruoyi-framework/3.8.5/ruoyi-framework-3.8.5.jar
Downloading from public: https://maven.aliyun.com/repository/public/com/ruoyi/ruoyi-generator/3.8.5/ruoyi-generator-3.8.5.jar
Downloading from public: https://maven.aliyun.com/repository/public/com/ruoyi/ruoyi-quartz/3.8.5/ruoyi-quartz-3.8.5.jar
Downloading from alimaven: http://maven.aliyun.com/nexus/content/repositories/central/com/ruoyi/ruoyi-framework/3.8.5/ruoyi-framework-3.8.5.jar
Downloading from alimaven: http://maven.aliyun.com/nexus/content/repositories/central/com/ruoyi/ruoyi-generator/3.8.5/ruoyi-generator-3.8.5.jar
Downloading from alimaven: http://maven.aliyun.com/nexus/content/repositories/central/com/ruoyi/ruoyi-quartz/3.8.5/ruoyi-quartz-3.8.5.jar
复制代码
Could not find artifact com.ruoyi:ruoyi-framework:pom:3.8.5 in public (https://maven.aliyun.com/repository/public)
复制代码
Could not find artifact com.ruoyi:ruoyi-quartz:pom:3.8.5 in public (https://maven.aliyun.com/repository/public)
复制代码
Could not find artifact com.ruoyi:ruoyi-quartz:pom:3.8.5 in public (https://maven.aliyun.com/repository/public)
复制代码
二、问题分析
根据 Idea 报错的信息,aliyun.com 远程仓库找不到相关的包。
首先疑惑的是,难道是阿里云的镜像仓库出现问题了吗?是不是服务器出错了?要不然,不可能获取不到相应的包。那么,是不是需要在 Maven 配置文件 settings.xml 更换一下远程仓库地址呢?
尝试直接在浏览器打开链接 https://maven.aliyun.com/repository/public,看一下是否可以直接显示仓库的文件包目录,结果页面 404 报错。
这是我的一个直接想法,算是一种尝试。毕竟,我是不知道阿里云仓库是不能直接通过浏览器查看的。
接着,通过对阿里云 404 页面提示信息的理解,加上对于阿里的技术实力以及业界的地位和依赖程度的判断,它们的服务器大概率是不会有问题的。那么,问题不应该出在阿里云远程仓库上,还需要继续分析。
既然问题不出在远程仓库上,是不是本地的 Maven 有问题呢?
接下来就去查看一下 Idea 的 Maven 配置,查看之后,应该是没有问题的,毕竟,其他的项目也都是如此使用的。
配置问题不大,就去看下报错的包,在本地仓库的情况吧。到达“~/.m2/repository/com/ruoyi”目录下,为了能够查看所有文件的情况,故而使用了 Git 第三方插件指令 tree 查看文件目录树情况,在 Git-Bash 命令行输入了 tree 指令。
到了这一步,其实就应该明白,所有问题的根源,就是本地没有相应的 jar。正是因为本地没有相应的 jar 包,才会默认去阿里云远程仓库尝试获取 jar 包的。
这下就有些困惑了,那么,怎么解决呢?
为了能够尽快解决问题,省掉自己思考的能量,一种比较偷懒的做法,自然就是去网上搜索相关信息。
在 Baidu 搜索的结果,还真的找到一条很重要的相关信息,对方的问题与当下的遇到的这个问题很类似。页面的链接地址:https://gitee.com/y_project/RuoYi/issues/I4TZJ8。
由此,可以了解到,ruoyi 相关的包,是不会存储在远程仓库的。
进一步思考,我就明白了。RuoYi-Vue 项目的各个模块是分开的,那么,本文开头提到的错误,涉及的相关的 Jar 包,也就是:
com.ruoyi:ruoyi-framework:pom:3.8.5
com.ruoyi:ruoyi-quartz:pom:3.8.5
com.ruoyi:ruoyi-generator:pom:3.8.5
它们是需要自己在本地打包,而后放到本地仓库里的。换句话说,Maven 打包的顺序和指令都不完全正确。
我应该使用 Maven 的 install 指令,把以上的包打出来,而后,它们会自动存放至本地的仓库目录“~/.m2/repository/com/ruoyi”下。
到了这里,问题真正解法就算是找到了。
三、问题解决
基于以上的问题分析,因此,只需要把 RuoYi-Vue 项目下的对应模块,使用 Maven 的 install 打好包就可以了。
这里有两种方式。
第一种:分别到 ruoyi-framework、ruoyi-quartz、ruoyi-generator 目录下打包
这种方式就是缺什么就打什么包,因此,可能会比较慢,也可能没有办法一次性地把相关的包打全打好。
因此,可以采取接下来的第二种方式。
第二种:在 Idea 的 Maven 窗口下,通过 ruoyi 下的 install 打包
这样就可以把所有涉及的相关包都打好了,包括我们需要的 ruoyi-admin。
打包部分日志如下:
"C:\Program Files\Java\jdk-11.0.9\bin\java.exe" -Dmaven.multiModuleProjectDirectory=C:\Projects\open\RuoYi-Vue -Dmaven.home=C:\App\apache-maven-3.6.3 -Dclassworlds.conf=C:\App\apache-maven-3.6.3\bin\m2.conf "-Dmaven.ext.class.path=C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.4\plugins\maven\lib\maven-event-listener.jar" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.4\lib\idea_rt.jar=10141:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.4\bin" -Dfile.encoding=UTF-8 -classpath C:\App\apache-maven-3.6.3\boot\plexus-classworlds-2.6.0.jar;C:\App\apache-maven-3.6.3\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version2019.3.4 install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] ruoyi [pom]
[INFO] ruoyi-common [jar]
[INFO] ruoyi-system [jar]
[INFO] ruoyi-framework [jar]
[INFO] ruoyi-quartz [jar]
[INFO] ruoyi-generator [jar]
[INFO] ruoyi-admin [war]
[INFO]
[INFO] --------------------------< com.ruoyi:ruoyi >---------------------------
[INFO] Building ruoyi 3.8.5 [1/7]
[INFO] --------------------------------[ pom ]---------------------------------
......
[INFO] --- maven-war-plugin:3.1.0:war (default-war) @ ruoyi-admin ---
[INFO] Packaging webapp
[INFO] Assembling webapp [ruoyi-admin] in [C:\Projects\open\RuoYi-Vue\ruoyi-admin\target\ruoyi-admin]
[INFO] Processing war project
[INFO] Webapp assembled in [424 msecs]
[INFO] Building war: C:\Projects\open\RuoYi-Vue\ruoyi-admin\target\ruoyi-admin.war
[INFO]
[INFO] --- spring-boot-maven-plugin:2.1.1.RELEASE:repackage (default) @ ruoyi-admin ---
[INFO] Replacing main artifact with repackaged archive
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ ruoyi-admin ---
[INFO] Installing C:\Projects\open\RuoYi-Vue\ruoyi-admin\target\ruoyi-admin.war to C:\Users\andy\.m2\repository\com\ruoyi\ruoyi-admin\3.8.5\ruoyi-admin-3.8.5.war
[INFO] Installing C:\Projects\open\RuoYi-Vue\ruoyi-admin\pom.xml to C:\Users\andy\.m2\repository\com\ruoyi\ruoyi-admin\3.8.5\ruoyi-admin-3.8.5.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for ruoyi 3.8.5:
[INFO]
[INFO] ruoyi .............................................. SUCCESS [ 0.243 s]
[INFO] ruoyi-common ....................................... SUCCESS [ 1.884 s]
[INFO] ruoyi-system ....................................... SUCCESS [ 0.273 s]
[INFO] ruoyi-framework .................................... SUCCESS [ 0.270 s]
[INFO] ruoyi-quartz ....................................... SUCCESS [ 1.678 s]
[INFO] ruoyi-generator .................................... SUCCESS [ 0.311 s]
[INFO] ruoyi-admin ........................................ SUCCESS [ 4.859 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.825 s
[INFO] Finished at: 2023-06-05T12:13:26+08:00
[INFO] ------------------------------------------------------------------------
复制代码
好了,问题解决。
四、启示
对于这个问题的解决,编写整篇文章,重新梳理解决的思考过程和解决步骤,让我明白一个道理。
面对任何错误,首先不要着急,不要浮躁,看清楚提示的信息很重要。不仔细阅读信息,很可能一直在问题的关键外绕去绕来。
其次,就是要有步骤地,一步一步来,自然就能够慢慢找到问题的根源在哪里。
最后,我认为,一定要刻意练习,不要一遇到问题,就都马上去网上搜索一番,不要让马上快速获取答案作为一种下意识的思维。
看似结果很重要,但是,高质量的思考过程和思维逻辑更重要。问题是需要马上解决,但是,有序科学的思考,应该是花不了多少时间的。反而是那种急躁的情绪,耽误了很多时间。
当然,要赚快钱,还是慢钱,决定权就在自己手上了。
好了,就写到这里。
感谢你的阅读,文中如有不妥之处,还望指出,谢谢。
评论