被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文件

<dependency>
    <groupId>org.apache.geronimo.specs</groupId>
    <artifactId>specs</artifactId>
    <version>1.1</version>
    <type>pom</type>
</dependency>

但是在其代理的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 ...</developers>\\n    ~\\n    <p... @91:7)  ."
  } ]
}

這個錯咱也看不懂,大概意思就是POM讀取失敗,報錯重點提示了這個"~",於是講pom文件下載下來之後發現第90行確實多了一個"~"
讓我沒想到的是公網倉庫"https://maven.aliyun.com/repository/jcenter"居然也埋有這種pom文件有問題的坑
不過用之前的nexus倉庫進行構建的時候能夠成功,但是用新的二進制倉庫構建的時候就找不到這個pom文件了,這個倉庫不是已經進行代理了麼
沒辦法,我只能將這個pom先上傳到二進制倉庫的local倉庫中,發現並不能點擊上傳按鈕
想起下載的時候報錯,猜測可能是對pom做解析了,於是刪除"~"之後果然上傳成功了
現在理清邏輯了,原來是新的二進制倉庫下載pom文件之前先要對其進行解析然後才同步到它裏面,這就是不能找到文件的原因了
那麼問題來了,這些公網倉庫誰知道還有沒有別的坑呢?
現在新的二進制倉庫對pom進行校驗之後反而失去了更強的兼容性,咱也不能去改公網的東西是吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章