工作中同事使用maven时遇到了下面的问题报错:
Failure to transfer com.iii:iii-adex:1.0-SNAPSHOT/maven-metadata.xml">com.iii:iii-adex:1.0-SNAPSHOT/maven-metadata.xml
from http://XXX.XXX.XX.com/artifactory/life">http://XXX.XXX.XX.com/artifactory/life was cached in the local repository,
resolution will not be reattempted until the update interval of * has elapsed or updates are forced.
Original error: Could not transfer metadata com.iii:iii-adex:1.0-SNAPSHOT/maven-metadata.xml
from/to * (http://XXX.XXX.XX.com/artifactory/life):
D:\code\repository\com\iii\iii-a dex\1.0-SNAPSHOT\maven-metadata-*.xml.part.lock (文件名、目录名或卷标语法不正确。)
Downloading from *: http://XXX.XXX.XX.com/artifactory/life/com/iii/iii-adex/1.0-SNAPSHOT/iii-adex-1.0-SNAPSHOT.pom
[WARNING] The POM for com.iii:iii-adex:jar:1.0-SNAPSHOT is missing, no dependency information available
最终发现是因为他的maven配置文件settings.xml 中的mirror 的id写成了*。导致maven把maven-metadata.xml 重命名为maven-metadata-*.xml。但是*在windows中不能作为文件名
所以出现如上错误。
他的settings.xml的mirror类似如下:
</mirrors>
<mirror>
<id>*</id>
<mirrorOf>central</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
修改方法:
mirror 的id改成常规名字即可,如:
</mirrors>
<mirror>
<id>ali</id>
<mirrorOf>central</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>