【异常处理】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的分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8s-MySQL主从集群

K8s-MySQL主从集群 引言 该案例代码均可从https://github.com/WeiXiao-Hyy/k8s_example 获取,欢迎Star! 需求 一个“主从复制”的MySQL集群有一个主节点Master有多个从节点Slave从节点需要能水平扩展所以写操作只能在主节点上执行读操作可以在所有节点…

Java组合模式在项目中使用场景

组合模式 一、介绍二、人员管理系统使用案例 一、介绍 将对象组合成树形结构以表示“部分-整体”的层次关系。组合模式使得用户对单个对象和组合对象的使用都是相同的。 组合模式主要由以下几个部分构成: Component(组件):定义…

Navicat Premium:掌控数据库的强大工具

在当今数字化的时代,数据管理变得越来越重要。无论您是数据库管理员、开发人员还是普通用户,找到一个高效、易用的数据库管理工具是至关重要的。Navicat Premium for Mac/Win 就是这样一款强大的多协议数据库管理工具,它将为您的数据库管理体…

突破编程_C++_设计模式(组合模式)

1 组合模式的基本概念 C中的组合模式是一种对象结构型模式,它将多个对象组合成树形结构,以表示具有整体-部分关系的层次结构。在这个模式中,对单个对象(叶子对象)与组合对象(容器对象)的使用具…

HPE ProLiant MicroServer Gen8 RAID 1 扩容、故障恢复探索

声明:本探索只针对HP Microserver Gen8 Smart Array B120i板载阵列卡组建RAID 1(不是RAID 10),不同阵列卡结果可能会不同,请谨慎操作,本人不对你操作后导致的任何数据丢失或者损失承担任何责任,…

kafka Interceptors and Listeners

Interceptors ProducerInterceptor https://www.cnblogs.com/huxi2b/p/7072447.html Producer拦截器(interceptor)是个相当新的功能,它和consumer端interceptor是在Kafka 0.10版本被引入的,主要用于实现clients端的定制化控制逻辑。 对于producer而言&…

Java SE入门及基础(29)

第三节 访问修饰符 1. 概念 访问修饰符就是控制访问权限的修饰符号 2. 类的访问修饰符 类的访问修饰符只有两种:public 修饰符和默认修饰符(不写修饰符就是默认) public 修饰符修饰类表示类可以公开访问。默认修饰符修饰类表示该类只能…

融资项目——网关微服务

1. 网关的路由转发功能 在前后端分离的项目中&#xff0c;网关服务可以将前端的相关请求转发到相应的后端微服务中。 2. 网关微服务的配置 首先需要创建一个网关微服务&#xff0c;并添加依赖。 <!-- 网关 --><dependency><groupId>org.springframework.cl…

wpf中的Border和Background

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;Border和Background是两个非常重要的属性&#xff0c;它们通常用于定义用户界面元素的外观样式。 Border&#xff1a; Border 是一个控件&#xff0c;它本身是一个装饰器&#xff0c;允许您为任何…

FreeRTOS学习笔记-基于stm32(3)中断管理

一、什么是中断 通俗点讲就是让CPU停止当前在做的事&#xff0c;转而去做更紧急的事。 二、中断优先级分组 这个紧急的事也有一个等级之分&#xff0c;优先级越高越先执行。stm32使用中断优先配置寄存器的高4位&#xff0c;共16级的中断优先等级。 stm32的中断优先等级可以分为…

让开源浏览器Chromium正常显示中文

什么是 Chromium &#xff1f; Chromium 是一个开源浏览器项目&#xff0c;旨在为所有用户构建一种更安全、更快、更稳定的网络体验方式。 和老苏之前介绍的 Firefox 的作用是一样的 文章传送门&#xff1a;给群晖安装firefox浏览器 因为是基于 vnc 的应用&#xff0c;感觉资源…

Elasticsearch 通过索引阻塞实现数据保护深入解析

Elasticsearch 是一种强大的搜索和分析引擎&#xff0c;被广泛用于各种应用中&#xff0c;以其强大的全文搜索能力而著称。 不过&#xff0c;在日常管理 Elasticsearch 时&#xff0c;我们经常需要对索引进行保护&#xff0c;以防止数据被意外修改或删除&#xff0c;特别是在进…

mysql笔记:1. 数据库创建与删除

可以使用show databases语句来查看当前所有存在的数据库。 mysql> show databases; Database ---------- information_schema mysql performance_schema sys其中&#xff0c;mysql用来描述用户访问权限。 创建数据库 创建数据库可以使用create database命令。 例如&#…

动态规划 第一期 背包问题

前言 动态规划难度较高&#xff0c;但是也十分重要&#xff0c;希望大家能够好好的理解&#xff01;&#xff01;&#xff01; 一、背包问题 思维导图&#xff1a; 背包问题(Knapsack problem)是一种组合优化的NP完全问题。问题可以描述为&#xff1a;给定一组物品&#xff…

c++ primer中文版第五版作业第十四章

见仓库 文章目录 14.114.214.314.414.514.614.714.814.914.1014.1114.1214.1314.1414.1514.1614.1714.1814.1914.2014.2114.2214.2314.2414.2514.2614.2714.2814.2914.3014.3114.3214.3314.3414.3514.3614.3714.3814.3914-4014.4114.4214.4314.4414.4514.4614.4714.4814.4914.5…

实现QT中qDebug()的日志重定向

背景&#xff1a; 在项目开发过程中&#xff0c;为了方便分析和排查问题&#xff0c;我们需要将原本输出到控制台的调试信息写入日志文件&#xff0c;进行持久化存储&#xff0c;还可以实现日志分级等。 日志输出格式&#xff1a; 我们需要的格式包括以下内容&#xff1a; 1.…

MySQL死锁详细介绍

首先死锁产生的原因&#xff1a;两个及以上事务争夺资源导致互相等待造成的 比如事务A先修改id为1的数据再去修改id为2的数据&#xff0c;事务B先修改id为2的数据再去修改id为1的数据&#xff0c;因为事务A先拿到id1的锁再去拿id2的锁&#xff0c;而事务B先拿到id2的锁又去拿id…

“成像光谱遥感技术中的AI革命:ChatGPT应用指

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。本文重点介绍ChatGPT在遥感中的应用&#xff0c;人工智能…

【Algorithms 4】算法(第4版)学习笔记 16 - 4.2 有向图

文章目录 前言参考目录学习笔记1&#xff1a;介绍1.1&#xff1a;有向图简介1.2&#xff1a;应用举例1.3&#xff1a;相关问题2&#xff1a;有向图 API2.1&#xff1a;有向图表示2.1.1&#xff1a;邻接表数组 Adjacency-list2.1.2&#xff1a;Java 实现&#xff1a;邻接表数组2…

2. gin中间件注意事项、路由拆分与注册技巧

文章目录 一、中间件二、Gin路由简介1、普通路由2、路由组 三、路由拆分与注册1、基本的路由注册2、路由拆分成单独文件或包3、路由拆分成多个文件4、路由拆分到不同的APP 一、中间件 在日常工作中&#xff0c;经常会有一些计算接口耗时和限流的操作&#xff0c;如果每写一个接…