spark+scala+maven的踩坑记录

323 阅读1分钟

背景

一个spark的项目使用maven进行依赖管理,开发语言是scala。在第一次拉取项目代码的时候想要打包,发现maven对一些依赖无法拉取,但是settings.xml文件的配置是没有问题的

具体报错

1. 仓库地址无法访问

有一类错误包含信息could not transfer artifact maven-default-http-blocker (http://0.0.0.0/): blocked mirror for repositories:然后列举了很多被blocked的仓库地址

如果是这一类的错误,首先确定自己是否有访问镜像仓库的权限,在settings.xml文件中是否配置了类似

<servers>
  <!-- 获取上传令牌:http://mirrors.tencent.com/#/private/maven -->
  <server>
    <id>id</id>
    <username>username</username>
    <password>password</password>
  </server>
</servers>

这样的令牌,如果没有,可能是没有权限访问

如果有,那么可以在<mirrors>标签下添加<block>的配置

<mirror>
  <id>insecure-repo</id>
  <mirrorOf>external:http:*</mirrorOf>
  <url>http://www.ebi.ac.uk/intact/maven/nexus/content/repositories/ebi-repo/</url>
  <blocked>false</blocked>
</mirror>

如果添加了这个配置还是没用,或者根本就没有<mirror>标签,那么可以降一下maven的版本

2. 无法构建

报错信息:可能是某一些插件报的无法构建的error

这种情况下应该找到报错信息中的error,查看是否是代码有问题,一般会是代码有问题

总结

遇到error不要慌,Java类项目最常见的就是版本错误,确保版本依赖没有问题,如果版本依赖没有问题一般不会报错。

首先确保代码没有问题,一般来说不要使用最新的版本!