【异常处理】sbt构建Chisel库时出现extracting structure failed:build status:error的解决办法

本文主要是介绍【异常处理】sbt构建Chisel库时出现extracting structure failed:build status:error的解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 报错背景:
  • 解决思路:
    • ①IDEA中配置本地的SBT进行下载
    • ②更改下载源为华为的镜像站
      • 1. 修改sbtconfig.txt
      • 2. 增加repositories文件
    • ③查看报错信息
  • 总结
    • 整理的Scala-Chisel-Chiseltest版本信息对应表

报错背景:

最近在写Chisel时,构建项目常常需要等待很久,然后报错extracting structure failed:build status:error
这个报错实际上告诉我们,在build.sbt中指定的依赖没有下载到,导致依赖的结构无法实现。
在这里插入图片描述

解决思路:

chisel库的资源是基于build.sbt配置文件给出的信息,使用sbt去maven网站上下载的,那么首先要确保sbt已经使用国内镜像源,以加快下载速度,其次根据报错信息,通过maven仓库网站查看缺少的文件,找到兼容的版本号,并修改build.sbt文件。

①IDEA中配置本地的SBT进行下载

打开IDEA的File-Settings,找到sbt,按照如图配置。
默认情况下Launcher是Bundle,即IDEA内置的SBT,默认从maven官方下载,我们将其指定为本地的sbt下bin目录中的sbt-launch.jar,并将VM parameters写入,方便后面更改为国内maven镜像站。

-Dsbt.override.build.repos=true

在这里插入图片描述

②更改下载源为华为的镜像站

1. 修改sbtconfig.txt

安装的sbt目录\conf\sbtconfig.txt 中写入

-Dsbt.override.build.repos=true

为true表示sbt构建的仓库下载源将自定义。
在这里插入图片描述

2. 增加repositories文件

在当前用户目录.sbt 下新建repositories文件,无需扩展名,并写入:

[repositories]
local
huaweicloud-maven: https://repo.huaweicloud.com/repository/maven/
maven-central: https://repo1.maven.org/maven2/
sbt-plugin-repo: https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

在这里插入图片描述

③查看报错信息

scalaVersion := "2.13.8"scalacOptions ++= Seq("-deprecation","-feature","-unchecked","-Xfatal-warnings","-language:reflectiveCalls",
)libraryDependencies += "edu.berkeley.cs" %% "chiseltest" % "0.5.6"
val chiselVersion = "3.4.3"
libraryDependencies += "edu.berkeley.cs" %% "chisel3" % chiselVersion

在这里插入图片描述
查看红框中第三行报错信息,可以看到sbt在maven仓库中没有找到build.sbt指定的库

[error] not found: https://repo1.maven.org/maven2/edu/berkeley/cs/chisel3_2.13/3.4.3/chisel3_2.13-3.4.3.pom

我们通过浏览器查看有没有这个库,可以看到在https://repo1.maven.org/maven2/edu/berkeley/cs/ 下有chisel3 2.11到2.13的库
点进chisel3 2.13中发现确实没有3.4.3
在这里插入图片描述
在这里插入图片描述
返回,去看chisel3 2.11的目录 发现确实有3.4.3的chisel适配版本
在这里插入图片描述
因此报错原因就找到了——build.sbt中指定的scala版本和chisel版本不匹配,如果想继续使用chisel 3.4.3版本,就应该更改build.sbt中scala版本为2.11系列,如果想继续使用2.13版本的scala,就必须更改chisel库版本为2.13库下的3.5.0到3.6.0系列。
可以下载的scala版本在https://repo.huaweicloud.com/repository/maven/org/scala-lang/scala-library/ 可以查看

总结

说了这么多,其实针对我的问题,最终解决办法就是把build.sbt中的scala版本更改为2.11系列即可,我修改成了2.11.9。
读者面对这个异常需要掌握这套方法,确保idea绑定了本地的sbt,并修改sbt的下载源,根据下载源的报错查找scala和chisel对应版本是否匹配,最终根据官方源中兼容的库去修改版本号。

这里给出我整理的Scala版本对应兼容的Chisel和Chiseltest版本信息:

scala 2.11系列兼容的chisel版本为兼容的chisel版本3.0.0到3.4.4,chiseltest版本为0.2.0到0.3.4
scala 2.12系列兼容的chisel版本为兼容的chisel版本3.0.0到3.6.0,chiseltest版本为0.2.0到0.6.1
scala 2.13系列兼容的chisel版本为兼容的chisel版本3.5.0到3.6.0,chiseltest版本为0.5.0到0.6.2 5.0.0到5.0.2 以及6.0.0

具体的scala小版本信息,请查看这里
具体的chisel和chiseltest小版本信息请查看这里

整理的Scala-Chisel-Chiseltest版本信息对应表

这里我整理出的对应表放入了网盘中,请自取:

链接:https://pan.baidu.com/s/1tk_mW7Z_RTwhFH_YLgUOsQ?pwd=z52s
提取码:z52s
–来自百度网盘超级会员V5的分享

这篇关于【异常处理】sbt构建Chisel库时出现extracting structure failed:build status:error的解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/780671

相关文章

Java中的StringBuilder之如何高效构建字符串

《Java中的StringBuilder之如何高效构建字符串》本文将深入浅出地介绍StringBuilder的使用方法、性能优势以及相关字符串处理技术,结合代码示例帮助读者更好地理解和应用,希望对大家... 目录关键点什么是 StringBuilder?为什么需要 StringBuilder?如何使用 St

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

在 Spring Boot 中实现异常处理最佳实践

《在SpringBoot中实现异常处理最佳实践》本文介绍如何在SpringBoot中实现异常处理,涵盖核心概念、实现方法、与先前查询的集成、性能分析、常见问题和最佳实践,感兴趣的朋友一起看看吧... 目录一、Spring Boot 异常处理的背景与核心概念1.1 为什么需要异常处理?1.2 Spring B

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp