问题一:
编译到工程mule-catalog-archetype时,报错“Can't canonicalize system path”
并且加载路径显示引用重复。
分析:
明显就是配置文件某处配置路径时,引用错误。问题是准确找到配置文件及路径元素位置。
解决方法:
在出错路径D:\mule-mule-3.x\tools\mule-catalog-archetype下找到对应的pom.xml文件,(各工程都配置有自己的pom文件)
将Configuration->resources->resource中的directory和targetPath去掉${project.build.directory}前缀。
问题二:
修改问题一后再次运行mvn eclipse:eclipse
期间,修改了D:\apache-maven-3.1.0\conf\ setting.xml文件。修改仓库镜像为开源中国服务。
分析:
无法提取文件或无法在远程仓库找到缓存的dependency。可能由于修改后的远程仓库与原仓库已下载部分冲突。
解决方法:
将setting.xml中的修改改回,即删除<mirror></mirror>部分。
问题三:
再次运行mvn eclipse:eclipse
报错:Could not transfer artifact Connection timed out
分析:
与问题二类似,仓库提取dependency有关,但有可能也是网络连接问题。直接重新install到本地仓库,再执行本命令。
解决办法:
mvn -DskipTests install
mvn eclipse:eclipse
总结:
maven实际运行依赖于从仓库提取的插件,所以很多问题是无法连接仓库、仓库中无法找到指定dependency、本地仓库dependency缓存错误等。可能发生在had a failed download and have fixed it (e.g. by uploading the jar to a repository) it will cache the failure或远程仓库变化后。详细可参见DependencyResolutionException https://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
maven源码时,常有多个工程,运行结束时会统一输出总体信息。若失败,则会跟有错误信息,在总体信息上方仍会有错误停止的项目的具体项目信息,常需要进入指定子项目目录中排错。