被pom文件中多的一个波浪线坑了一把

最近遇到一个巨坑的问题:
Failed to read artifact descriptor for org.apache.geronimo.specs:geronimo-jta_1.0.1B_spec:jar:1.0.1: Failure to find org.apache.geronimo.specs:specs:pom:1.1 in http://······ was cached in the local repository, ······
后来发现是新的二进制仓库里面找不到这个pom文件


    org.apache.geronimo.specs
    specs
    1.1
    pom

但是在其代理的nexus仓库中找到了这个pom文件
然后通过URL进行下载,发现nexus直接在浏览器中显示了pom文件的内容,而新的二进制仓库却报错

{
  "errors" : [ {
    "status" : 409,
	"message" : "Failed to read POM for 'org/apache/geronimo/specs/specs/1.1/specs-1.1.pom': expected START_TAG or END_TAG not TEXT (position: TEXT seen ...\\n    ~\\n    

这个错咱也看不懂,大概意思就是POM读取失败,报错重点提示了这个"~",于是讲pom文件下载下来之后发现第90行确实多了一个"~"
让我没想到的是公网仓库"https://maven.aliyun.com/repository/jcenter"居然也埋有这种pom文件有问题的坑
不过用之前的nexus仓库进行构建的时候能够成功,但是用新的二进制仓库构建的时候就找不到这个pom文件了,这个仓库不是已经进行代理了么
没办法,我只能将这个pom先上传到二进制仓库的local仓库中,发现并不能点击上传按钮
想起下载的时候报错,猜测可能是对pom做解析了,于是删除"~"之后果然上传成功了
现在理清逻辑了,原来是新的二进制仓库下载pom文件之前先要对其进行解析然后才同步到它里面,这就是不能找到文件的原因了
那么问题来了,这些公网仓库谁知道还有没有别的坑呢?
现在新的二进制仓库对pom进行校验之后反而失去了更强的兼容性,咱也不能去改公网的东西是吧。

你可能感兴趣的:(软件使用,pom,构建,仓库)