前言错误描述探索过程
解决方案 小结
前言创作开始时间:2022年3月27日20:08:52
很久没编译Nopol了,之前本地的maven repo也丢失了,今天重新编译的时候,发现Nopol编译没通过,,,无语了。这里给出解决方案。
错误描述运行mvn clean package,
发现卡在downloading xxx了,
然后就是:
(connection time out)
错误。
探索过程一开始有点懵逼。因为过久了,一下子接触又有点陌生了。
先瞅了一眼:nopol/nopol/pom.xml文件,
发现里面有几个额外的repository:
inria http://maven-repo.gforge.inria.fr/releases sachaproject.gforge.inria.fr-release Maven Repository for Spoon Release http://sachaproject.gforge.inria.fr/repositories/releases/ gforge.inria.fr-snapshot Maven Repository for Spoon Snapshot http://maven.inria.fr/artifactory/spoon-public-snapshot/ spoon.gforge.inria.fr-release Maven Repository for Spoon Release http://spoon.gforge.inria.fr/repositories/releases/ tdurieux.github.io/maven-repository/snapshots/ tdurieux.github.io maven-repository https://tdurieux.github.io/maven-repository/snapshots/ internal-repo Temporary Staging Repository file://${project.build.directory}/mvn-repo/releases internal-snapshot-repo Temporary Staging Snapshot Repository file://${project.build.directory}/mvn-repo/snapshots
我感觉估计是这些网站已经不可用了,,,所以download不下来。
手动试了几个:
http://maven-repo.gforge.inria.fr/releases 访问不了http://sachaproject.gforge.inria.fr/repositories/releases/ 访问不了http://maven.inria.fr/artifactory/spoon-public-snapshot/ 可以访问http://spoon.gforge.inria.fr/repositories/releases/ 访问不了
四去其三,难顶。
解决方案两手抓。
1)先提了个issue,问下是啥情况。
不禁感慨,时间是最大的“敌人”。去年网站还维护的好好的,今年数据就get不到了。
2)把上面的repository注释了,重新编译一遍,看缺了哪些包:
[ERROR] Failed to execute goal on project nopol: Could not resolve dependencies for project fr.inria.gforge.spirals:nopol:jar:0.2-SNAPSHOT: The following artifacts could not be resolved: gov.nasa.jpf:jpf:jar:1154, gov.nasa.jpf:jpf-symbc:jar:576, com.microsoft.z3:z3:jar:0.0.1, org.smtlib:smtlib:jar:0.9.7.1, sacha:infra:jar:0.1, com.gzoltar:gzoltar:jar:0.1.1: Failure to find gov.nasa.jpf:jpf:jar:1154 in http://maven.aliyun.com/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of alimaven has elapsed or updates are forced -> [Help 1]
缺了:
gov.nasa.jpf:jpf:jar:1154
但是我发现我本地有这个jar包啊。而且是完整的,可以打开的jar包。(说明下载完全,不存在破损情况)
2022年3月27日21:05:53
经过一番研究,我发现问题出在:
Failure to find gov.nasa.jpf:jpf:jar:1154 in http://maven.aliyun.com/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of alimaven has elapsed or updates are forced -> [Help 1]
参考:
ARTIFACTORY: How to Resolve the Common Maven Error: resolution will not be reattempted https://jfrog.com/knowledge-base/how-to-resolve-the-common-resolution-will-not-be-reattempted-maven-error/ (这里面说要用-U参数运行mvn)解决maven构建报错 https://blog.51cto.com/qiangsh/1743074 这里面说:
Maven默认会使用本地缓存的库来编译工程,对于上次下载失败的库,maven会在~/.m2/repository目录下创建xxx.lastUpdated文件,一旦这个文件存在,那么在直到下一次nexus更新之前都不会更新这个依赖库。
方法一:
删除v~/.m2/repository目录下的*.lastUpdated文件,然后再次运行mvn compile编译工程。
终于get到了。
这样操作,以smtlib为例:
打开:/home/apr/.m2/repository/org/smtlib/smtlib/0.9.7.1/smtlib-0.9.7.1.jar所在文件夹,然后删掉所有*lastupdated文件。
(2022年3月27日21:12:44 发现不行,还需要删除别的文件,只留下下面这两个文件,才可以:)
然后在nopol文件夹下运行:mvn clean package -DskipTests -U,发现smtlib没再报错了。
依次对其他报错的依赖这样操作即可。
备注:最后发现好像可以直接mvn clean package -DskipTests (不加-U也可以),就能正常打包了。终于搞定了,哭。
小结感觉解决这种问题,这的很需要想象力啊。
有时候真的一脸懵逼。
但是这就是神奇的地方,一个小时前我一脸懵逼,但是一小时还是通过一些操作达到workaround的效果了。。。
创作结束时间:2022年3月27日21:17:14



