sbt打包遇到的一些问题。【Couldn‘t retrieve source module: org.scala-sbt:compiler-interface:0.13.11:component】

文章描述了在使用sbt进行项目打包时遇到的两个问题:一是终端构造失败的错误,通过在.bashrc文件中添加exportTERM=xterm-color并重启解决;二是源码模块下载失败,可能是由于网络或依赖版本问题导致。最后作者发现是代码本身存在问题,修正后成功打包。
部署运行你感兴趣的模型镜像

查看sbt是否安装成功或打包的时候出现以下报错:

[ERROR] Failed to construct terminal; falling back to unsupported
java.lang.NumberFormatException: For input string: "0x100"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.valueOf(Integer.java:766)
    at jline.internal.InfoCmp.parseInfoCmp(InfoCmp.java:59)
    at jline.UnixTerminal.parseInfoCmp(UnixTerminal.java:233)
    at jline.UnixTerminal.<init>(UnixTerminal.java:64)
    at jline.UnixTerminal.<init>(UnixTerminal.java:49)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.lang.Class.newInstance(Class.java:442)
    at jline.TerminalFactory.getFlavor(TerminalFactory.java:209)
    at jline.TerminalFactory.create(TerminalFactory.java:100)
    at jline.TerminalFactory.get(TerminalFactory.java:184)
    at jline.TerminalFactory.get(TerminalFactory.java:190)
    at sbt.ConsoleLogger$.ansiSupported(ConsoleLogger.scala:123)
    at sbt.ConsoleLogger$.<init>(ConsoleLogger.scala:117)
    at sbt.ConsoleLogger$.<clinit>(ConsoleLogger.scala)
    at sbt.GlobalLogging$.initial(GlobalLogging.scala:43)
    at sbt.StandardMain$.initialGlobalLogging(Main.scala:61)
    at sbt.StandardMain$.initialState(Main.scala:70)
    at sbt.xMain.run(Main.scala:29)
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:128)
    at xsbt.boot.Launch$.run(Launch.scala:109)
    at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:35)
    at xsbt.boot.Launch$.launch(Launch.scala:117)
    at xsbt.boot.Launch$.apply(Launch.scala:18)
    at xsbt.boot.Boot$.runImpl(Boot.scala:41)
    at xsbt.boot.Boot$.main(Boot.scala:17)
    at xsbt.boot.Boot.main(Boot.scala)

实测有效方法!

在~/.bashrc中加入export TERM=xterm-color,保存后再次运行查看。

我第一次试了之后没成功,重启之后就可以了,有点玄学吧。

sudo vim ~/.bashrc
#添加
export TERM=xterm-color
#保存
source ~/.bashrc

用sbt打包的时候也遇到了这个问题,在网上找了好久。。。

最后死马当活马医,试了简单的代码去打包后,发现可以了!

参天啊!!!

居然是原本我要打包的代码里面出现了错误😭

momo@momo:~/sparkapp$ /usr/local/sbt/sbt package
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256M; support was removed in 8.0
[info] Set current project to Simple Project (in build file:/home/momo/sparkapp/)
[info] Compiling 1 Scala source to /home/momo/sparkapp/target/scala-2.11/classes...
[info] Attempting to fetch org.scala-sbt % compiler-interface % 0.13.11. This operation may fail.
[info] Resolving org.scala-sbt#interface;0.13.11 ...
[warn]     [FAILED     ] org.scala-sbt#compiler-interface;0.13.11!compiler-interface.jar(src):  (0ms)
[warn] ==== local: tried
[warn]   /home/momo/.ivy2/local/org.scala-sbt/compiler-interface/0.13.11/srcs/compiler-interface-sources.jar
[warn] ==== huaweicloud-maven: tried
[warn]   https://repo.huaweicloud.com/repository/maven/org/scala-sbt/compiler-interface/0.13.11/compiler-interface-0.13.11-sources.jar
[warn] ==== maven-central: tried
[warn]   https://repo1.maven.org/maven2/org/scala-sbt/compiler-interface/0.13.11/compiler-interface-0.13.11-sources.jar
[warn] ==== sbt-plugin-repo: tried
[warn]   https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/org.scala-sbt/compiler-interface/0.13.11/srcs/compiler-interface-sources.jar
[warn]     ::::::::::::::::::::::::::::::::::::::::::::::
[warn]     ::              FAILED DOWNLOADS            ::
[warn]     :: ^ see resolution messages for details  ^ ::
[warn]     ::::::::::::::::::::::::::::::::::::::::::::::
[warn]     :: org.scala-sbt#compiler-interface;0.13.11!compiler-interface.jar(src)
[warn]     ::::::::::::::::::::::::::::::::::::::::::::::
sbt.InvalidComponent: Couldn't retrieve source module: org.scala-sbt:compiler-interface:0.13.11:component
    at sbt.compiler.IvyComponentCompiler$$anonfun$sbt$compiler$IvyComponentCompiler$$compileAndInstall$1$$anonfun$apply$2$$anonfun$apply$mcV$sp$1.apply(ComponentCompiler.scala:124)
    at sbt.compiler.IvyComponentCompiler$$anonfun$sbt$compiler$IvyComponentCompiler$$compileAndInstall$1$$anonfun$apply$2$$anonfun$apply$mcV$sp$1.apply(ComponentCompiler.scala:117)
    at sbt.IO$.withTemporaryDirectory(IO.scala:344)
    at sbt.compiler.IvyComponentCompiler$$anonfun$sbt$compiler$IvyComponentCompiler$$compileAndInstall$1$$anonfun$apply$2.apply$mcV$sp(ComponentCompiler.scala:117)
    at sbt.compiler.IvyComponentCompiler$$anonfun$sbt$compiler$IvyComponentCompiler$$compileAndInstall$1$$anonfun$apply$2.apply(ComponentCompiler.scala:117)
    at sbt.compiler.IvyComponentCompiler$$anonfun$sbt$compiler$IvyComponentCompiler$$compileAndInstall$1$$anonfun$apply$2.apply(ComponentCompiler.scala:117)
    at sbt.BufferedLogger.bufferQuietly(BufferedLogger.scala:31)
    at sbt.compiler.IvyComponentCompiler$$anonfun$sbt$compiler$IvyComponentCompiler$$compileAndInstall$1.apply(ComponentCompiler.scala:115)
    at sbt.compiler.IvyComponentCompiler$$anonfun$sbt$compiler$IvyComponentCompiler$$compileAndInstall$1.apply(ComponentCompiler.scala:110)
    at sbt.IO$.withTemporaryDirectory(IO.scala:344)
    at sbt.compiler.IvyComponentCompiler.sbt$compiler$IvyComponentCompiler$$compileAndInstall(ComponentCompiler.scala:110)
    at sbt.compiler.IvyComponentCompiler$$anonfun$apply$1.apply$mcV$sp(ComponentCompiler.scala:101)
    at sbt.IfMissing$Define.apply(ComponentManager.scala:75)
    at sbt.ComponentManager.sbt$ComponentManager$$createAndCache$1(ComponentManager.scala:39)
    at sbt.ComponentManager$$anonfun$sbt$ComponentManager$$fromGlobal$1$1.apply(ComponentManager.scala:27)
    at sbt.ComponentManager$$anonfun$sbt$ComponentManager$$fromGlobal$1$1.apply(ComponentManager.scala:26)
    at sbt.ComponentManager$$anon$1.call(ComponentManager.scala:50)
    at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:93)
    at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:78)
    at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:97)
    at xsbt.boot.Using$.withResource(Using.scala:10)
    at xsbt.boot.Using$.apply(Using.scala:9)
    at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58)
    at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48)
    at xsbt.boot.Locks$.apply0(Locks.scala:31)
    at xsbt.boot.Locks$.apply(Locks.scala:28)
    at sbt.ComponentManager.lock(ComponentManager.scala:50)
    at sbt.ComponentManager.lockGlobalCache(ComponentManager.scala:49)
    at sbt.ComponentManager.sbt$ComponentManager$$fromGlobal$1(ComponentManager.scala:25)
    at sbt.ComponentManager$$anonfun$files$1$$anonfun$apply$2.apply(ComponentManager.scala:44)
    at sbt.ComponentManager$$anonfun$files$1$$anonfun$apply$2.apply(ComponentManager.scala:44)
    at sbt.ComponentManager.sbt$ComponentManager$$getOrElse$1(ComponentManager.scala:32)
    at sbt.ComponentManager$$anonfun$files$1.apply(ComponentManager.scala:44)
    at sbt.ComponentManager$$anonfun$files$1.apply(ComponentManager.scala:44)
    at sbt.ComponentManager$$anon$1.call(ComponentManager.scala:50)
    at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:93)
    at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:78)
    at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:97)
    at xsbt.boot.Using$.withResource(Using.scala:10)
    at xsbt.boot.Using$.apply(Using.scala:9)
    at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:58)
    at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:48)
    at xsbt.boot.Locks$.apply0(Locks.scala:31)
    at xsbt.boot.Locks$.apply(Locks.scala:28)
    at sbt.ComponentManager.lock(ComponentManager.scala:50)
    at sbt.ComponentManager.lockLocalCache(ComponentManager.scala:47)
    at sbt.ComponentManager.files(ComponentManager.scala:44)
    at sbt.ComponentManager.file(ComponentManager.scala:53)
    at sbt.compiler.IvyComponentCompiler.apply(ComponentCompiler.scala:101)
    at sbt.compiler.ComponentCompiler$$anon$2.apply(ComponentCompiler.scala:35)
    at sbt.compiler.AnalyzingCompiler.loader(AnalyzingCompiler.scala:112)
    at sbt.compiler.AnalyzingCompiler.getInterfaceClass(AnalyzingCompiler.scala:117)
    at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:98)
    at sbt.compiler.AnalyzingCompiler.newCachedCompiler(AnalyzingCompiler.scala:56)
    at sbt.compiler.AnalyzingCompiler.newCachedCompiler(AnalyzingCompiler.scala:51)
    at sbt.compiler.CompilerCache$$anon$2.apply(CompilerCache.scala:47)
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:39)
    at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply$mcV$sp(MixedAnalyzingCompiler.scala:50)
    at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply(MixedAnalyzingCompiler.scala:50)
    at sbt.compiler.MixedAnalyzingCompiler$$anonfun$compileScala$1$1.apply(MixedAnalyzingCompiler.scala:50)
    at sbt.compiler.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:74)
    at sbt.compiler.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:49)
    at sbt.compiler.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:64)
    at sbt.compiler.IC$$anonfun$compileInternal$1.apply(IncrementalCompiler.scala:160)
    at sbt.compiler.IC$$anonfun$compileInternal$1.apply(IncrementalCompiler.scala:160)
    at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:66)
    at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:64)
    at sbt.inc.IncrementalCommon.cycle(IncrementalCommon.scala:32)
    at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:68)
    at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:67)
    at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:95)
    at sbt.inc.Incremental$.compile(Incremental.scala:67)
    at sbt.inc.IncrementalCompile$.apply(Compile.scala:54)
    at sbt.compiler.IC$.compileInternal(IncrementalCompiler.scala:160)
    at sbt.compiler.IC$.incrementalCompile(IncrementalCompiler.scala:138)
    at sbt.Compiler$.compile(Compiler.scala:152)
    at sbt.Compiler$.compile(Compiler.scala:138)
    at sbt.Defaults$.sbt$Defaults$$compileIncrementalTaskImpl(Defaults.scala:860)
    at sbt.Defaults$$anonfun$compileIncrementalTask$1.apply(Defaults.scala:851)
    at sbt.Defaults$$anonfun$compileIncrementalTask$1.apply(Defaults.scala:849)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
    at sbt.std.Transform$$anon$4.work(System.scala:63)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.Execute.work(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
[error] (compile:compileIncremental) sbt.InvalidComponent: Couldn't retrieve source module: org.scala-sbt:compiler-interface:0.13.11:component
[error] Total time: 15 s, completed 2023-3-4 17:42:45

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

<think> 我们正在处理一个关于Scala SDK配置的问题,具体错误是“No 'scala-library*.jar' in Scala compiler classpath in Scala SDK”。根据提供的引用,我们可以总结出以下原因和解决方案。 原因: 1. Scala SDK版本与项目依赖的Scala版本不一致(如引用2和4所述,可能一个用2.11,另一个用2.12)。 2. 项目中配置了Libraries,但存在冲突(引用2建议不要单独配置Libraries,使用全局配置)。 3. 在Maven项目中,依赖的spark-core等组件指定的Scala版本与本地环境不一致(引用4)。 解决方案: 1. 检查并统一Scala版本:确保项目中使用的Scala SDK版本与pom.xml(或build.sbt)中指定的Scala版本一致。例如,如果pom.xml中依赖的是scala-library的2.12.7,那么Scala SDK也应该选择2.12.x版本。 2. 检查Maven依赖:确认pom.xml中Scala依赖的artifactId是否正确(如scala-library的版本号与SDK版本匹配)。例如,对于Scala 2.12.7,依赖应写为: ```xml <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.12.7</version> </dependency> ``` 3. 如果项目中单独配置了Libraries(在IntelliJ IDEA的Project Structure -> Libraries中),建议删除这些配置,使用全局的Scala SDK(Global Libraries)即可(引用2)。 4. 重新导入Maven项目:在IntelliJ IDEA中,右键点击pom.xml,选择“Maven”->“Reimport”以确保依赖正确下载和配置。 5. 如果问题依旧,尝试清理Idea缓存:File -> Invalidate Caches / Restart。 另外,引用5提到了一个类似的错误(NoClassDefFoundError: scala/Predef$),这通常也是由于缺少scala-library引起的,所以同样可以通过上述方法解决。 操作步骤(IntelliJ IDEA): 1. 检查Scala SDK版本:File -> Project Structure -> Global Libraries,确保这里配置的Scala SDK版本与pom.xml中的一致(例如2.12.7)。 2. 如果Global Libraries中没有正确的版本,可以点击"+"添加,选择正确的版本(需要提前下载好)。 3. 在Project Structure -> Modules -> Dependencies中,检查模块的依赖,确保没有重复或冲突的Scala库。如果有,移除冲突的库(特别是版本不一致的)。 4. 检查Project Structure -> Modules -> Paths,确保编译输出路径设置正确。 5. 重新导入Maven项目:右键点击pom.xml -> Maven -> Reimport。 6. 如果之前有单独配置的Libraries(在Project Structure -> Libraries中),删除它们(引用2的建议)。 注意:如果项目同时使用Spark,注意Spark的依赖也要匹配Scala版本。例如,Spark 2.x通常有多个版本(如spark-core_2.11spark-core_2.12),需要选择与Scala SDK匹配的版本(引用4)。 总结:核心问题是版本一致性,确保所有地方(SDK、Maven依赖、Spark依赖等)使用相同的Scala版本。 </think> ### 解决 Scala SDK 中 "No 'scala-library*.jar'" 错误的方法 根据引用内容分析,该错误通常由 **Scala 版本冲突**或 **SDK 配置错误**引起。以下是具体解决步骤: #### 步骤 1:检查版本一致性(关键步骤) - 在 `pom.xml` 中确认 Scala 版本声明: ```xml <properties> <scala.version>2.12.7</scala.version> <!-- 确保此处与SDK版本一致 --> </properties> ``` - 检查依赖项是否匹配: ```xml <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>${scala.version}</version> <!-- 必须与SDK版本相同 --> </dependency> ``` - **验证点**:SDK 版本(2.12.7)必须与所有 Scala 依赖(如 `spark-core_2.12`)的大版本完全一致[^2][^4]。 #### 步骤 2:重新配置 SDK(IntelliJ IDEA) 1. 打开 `File > Project Structure > Global Libraries` 2. 删除现有 Scala SDK 配置 3. 点击 `+ > Scala SDK > From Maven...` 4. 输入坐标:`org.scala-lang:scala-library:2.12.7` 5. 等待依赖自动下载完成 #### 步骤 3:清理冲突配置(重要) - 移除项目中多余的库引用: - `Project Structure > Libraries` → 删除所有非全局 Scala 库[^2] - `Project Structure > Modules > Dependencies` → 移除重复的 `scala-library` 条目 - **注意事项**:避免混合使用全局库和模块级库配置[^2] #### 步骤 4:验证编译路径 执行以下操作后重启 IDE: ```shell mvn clean scala:compile # Maven项目 ``` 检查输出中是否包含: ``` [INFO] Using scala-library version 2.12.7 ``` #### 其他可能解决方案 1. **缓存清理**:`File > Invalidate Caches / Restart` 2. **依赖树检查**:运行 `mvn dependency:tree | grep scala` 确认无版本冲突 3. **SDK 重装**:手动下载 [scala-2.12.7](https://www.scala-lang.org/download/2.12.7.html) 并指定本地路径 > **根本原因**:该错误通常由以下冲突引起 > $$ \text{SDK版本} \neq \text{Maven依赖版本} \quad \lor \quad \text{多版本共存} $$ > 严格保持版本一致性即可解决[^1][^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值