MacOS环境下SystemML源码Maven构建失败求助
解决SystemML 1.1.0在MacBook上Maven构建失败的问题
我近期开始参与SystemML项目贡献,在MacBook上使用Maven构建SystemML 1.1.0源码时,每次均构建失败。问题疑似与Scala相关,但我无法定位具体原因。我已尝试更换Scala版本、重新安装sbt、清理Maven本地仓库(~/.m2目录),但均未解决问题。我的运行环境为:
- macOS High Sierra 10.13.1
- Java 9.0.4
- Maven 3.5.2
结合你的环境和尝试过的操作,我整理了几个针对性的排查方向和解决方案,应该能帮你解决构建问题:
1. 优先降级Java版本到8
SystemML 1.1.0发布于2018年,当时Java 9刚推出不久,很多Scala工具链和Maven插件对Java 9的模块系统支持并不完善,这大概率是构建失败的核心原因。建议你切换到Java 8:
- 如果用Homebrew,直接执行
brew install openjdk@8 - 配置环境变量将Java 8设为默认:
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) export PATH=$JAVA_HOME/bin:$PATH - 执行
java -version确认输出为1.8.x版本后,再重新运行mvn clean install
2. 严格匹配项目指定的Scala版本
不要随意更换Scala版本,先查看项目根目录pom.xml里的<scala.version>配置项(SystemML 1.1.0默认是2.11.12),构建时显式指定该版本:
mvn clean install -Dscala.version=2.11.12
3. 若坚持用Java 9,添加模块兼容参数
如果不想降级Java,需要给Maven添加参数绕过Java 9的模块检查限制:
mvn clean install --add-modules java.se.ee
4. 缩小范围排查具体模块
可以尝试单独编译Scala代码模块,快速定位错误点:
mvn compile -pl src/main/scala
重点查看日志末尾的错误信息,比如依赖缺失、编译语法错误或权限问题(Mac上~/.m2目录的读写权限也可能导致构建失败)。
5. 重新克隆干净的源码
如果本地源码存在损坏或缓存问题,重新克隆项目并切换到1.1.0标签再尝试构建:
git clone https://github.com/apache/systemml.git cd systemml git checkout tags/1.1.0 mvn clean install
内容的提问来源于stack exchange,提问作者Govinda Malavipathirana
相关产品推荐
相关产品推荐

