说是源码初识别,倒不如说这是我本周的一个工作总结,我的效率太低了。我自觉很不好意思。
起因是上网搜了ngrinder各大网友的用法,源码扩展我是参考的,但是在第一步编译的时候就发现不通过。调了2天,我用的是3.4.2版本,还是maven,3.5就成了gradle
源码自己github上找吧,我不帖了
我编译时直接执行mvn clean install -Dmaven.test.skip=true
,但下载下来的源码包,编译时报很多依赖找不着,我这里举个例子,各位顺着路数去解决。
- 报错信息如:
[INFO] ngrinder-starter ................................... SUCCESS [ 3.286 s]
[INFO] ngrinder-runtime ................................... SUCCESS [ 2.925 s]
[INFO] ngrinder-groovy .................................... SUCCESS [ 1.423 s]
[INFO] ngrinder-core ...................................... SUCCESS [ 20.007 s]
[INFO] ngrinder-sh ........................................ SUCCESS [ 10.756 s]
[INFO] ngrinder-controller ................................ FAILURE [10:26 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11:05 min
[INFO] Finished at: 2020-11-26T12:37:16+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project ngrinder-controller: Could not resolve dependencies for project org.ngrinder:ngrinder-controller:war:3.4.2: The following artifacts could not be resolved: cubrid:cubrid-jdbc:jar:8.4.1.2032,
org.ngrinder:universal-analytics-java:jar:1.0: Could not find artifact cubrid:cubrid-jdbc:jar:8.4.1.2032 in rdc-releases (https://packages.aliyun.com/maven/repository/2019967-release-kYuo42/) -> [Help 1]
看这报错,一目了,cubrid:cubrid-jdbc:jar:8.4.1.2032找不着,我翻开ngrinder-controller目录pom.xml去查找相关依赖配置,如下:
<dependency>
<groupId>cubrid</groupId>
<artifactId>cubrid-jdbc</artifactId>
<version>8.4.1.2032</version>
</dependency>
我们在maven中央仓库这里添加依赖配置:
https://mvnrepository.com/artifact/cubrid/cubrid-jdbc/8.4.1.2032
- 但却是找不到的,编译仍然会报错
我上网搜了相关的我的信息,没有正确的指引,最终我使用了杀手锏:
-
下载jar
-
上传阿里云私有仓库
-
maven setting.xml配置仓库地址
-
接着又有新的问题
我本地仓库里已经有所需的依赖下载下来了,但是竟然还是报找不着
查看idea配置
我就用默认配置即可,依赖都有下载到此目录
- 还是不行
网上找了一些资料,没有一篇讲清楚的。其实我糊里糊涂的。
file-setting-maven-Repositories这里我见中央仓库是Error
,我更新了本地仓库,结果也是Error
然后又是一通检查,我的默认maven-setting.xml配置并没有配置mirrors
,只是配置了respositries
节点。就一直报找不到。加上
<mirrors>
<!--阿里公有仓库-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<!--阿里私有仓库,一些公有仓库里都没有的jar,我是下载来,放进去私有仓库的-->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://packages.aliyun.com/maven/repository/2019967-release-kYuo42/</url>
</mirror>
注:这里私有仓库一般有权限验证,所以请注意,要加servers验证,自行搜索添加,username和password找管理员要
至此,整个项目编译成功
至此,可以进行下一步的源码操作了~~
总结
idea-pom.xml文件中自动通过rlt+insert
添加的依赖,找不到的时候,也许就是中央仓库timeout,这种情况时有发生,最保险的方式是用阿里云的公共仓库,但是毕竟有些依赖在阿里云的仓库里也没有,所以这时候,要解决问题,就上传到你的私有仓库里吧!
一定要坚信报错信息,当你尝试加上依赖很久了,运行还是出错报找不着,一定不要怀疑报错信息抽风了,一定是确实没找着,这时候再细细分析,其实我不赞同去针对为什么去找原因,我觉得这时候,只要快速的用替代方案解决问题既可。