我知道已經有關于此的回答問題,但它們對我不起作用,也許是因為它們現在太舊了。
所以我在 Intellij IDEA Ultimate(SDK 16.0.1)上創建了一個 Scala 專案。我使用 sbt 編譯它。我創建了一個MainTest在課堂上src/test/scala使用以下內容:
import org.scalatest.funsuite.AnyFunSuite
class MainTest extends AnyFunSuite {
test("Example") {
assert(1 == 1)
}
}
在我的build.sbt檔案中,我有:
name := "my-scala-project"
version := "0.1"
scalaVersion := "3.0.0-M2"
libraryDependencies = "org.scalatest" %% "scalatest" % "1.4.RC2" % Test
我還org.scalatest:scalatest_2.11:3.1.0從檔案 > 專案結構... > 專案設定 > 庫視窗安裝了來自 Maven 的庫
在編輯器上,我可以看到 Intellij 無法決議我的測驗檔案中的匯入,因為它被標記為紅色。當我運行時sbt clean test,我收到此錯誤訊息:
[error] -- [E006] Not Found Error: path\to\project\src\test\scala\MainTest.scala:4:2
[error] 4 | test("Example") {
[error] | ^^^^
[error] | Not found: test
[error] one error found
[error] one error found
[error] (Test / compileIncremental) Compilation failed
為什么它不起作用?我以為我已經按預期完成了一切。理想情況下,我想使用最新的 3.2.9 版本的 Scalatest。
謝謝
uj5u.com熱心網友回復:
首先,您必須將 更改scalaVersion為3.0.0,這是支持的最新版本。
就依賴關系而言,正如 Jarrod 所提到的,您可以使用
"org.scalatest" %% "scalatest" % "3.2.10" % Test
使用時,groupID %% artifactID % revision您是在告訴 sbt 獲取適合您提供的 Scala 版本的 artifactID,在本例中為3.0.0-M2.
您也可以使用groupID % artifactID % revision. 就像在您的問題中一樣,如果scalatest_2.11是 artifactID,則表示將下載scalatestScala 版本2.11.x。
uj5u.com熱心網友回復:
您需要做兩件事來修復您的代碼:
- 更新
build.sbt以使用正確的依賴項;和 - 使用必要的特征擴展您的測驗類。
對于 1:
使用以下內容匯入 Scalatest 庫:
libraryDependencies = "org.scalatest" %% "scalatest" % "3.2.10" % Test
當您_2.11在當前配置中使用時,您會要求 SBT 為您找到 Scala 2.11 的 scalatest 版本,但您使用的是 Scala 3.1.0。這%%是為您的 Scala 版本提取正確版本的 Scalatest 的助手。
對于 2:
根據檔案將您的檔案更改為:
class MainTest extends AnyFunSuite {
test("Example") {
assert(1 == 1)
}
}
uj5u.com熱心網友回復:
我結合了我在評論中得到的所有幫助:
我不得不在build.sbt檔案中寫這個:
name := "meteo-france-client"
version := "0.1"
scalaVersion := "3.0.0-M2"
libraryDependencies = "org.scalatest" %% "scalatest" % "3.3.0-SNAP3" % Test
然后sbt reload和sbt clean compile它的作品。但是我現在得到這個例外:
[info] compiling 1 Scala source to C:\Users\adrie\OneDrive\Documents\dev\meteo-france-client\target\scala-3.0.0-M2\test-classes ...
[error] ## Exception when compiling 1 sources to C:\Users\adrie\OneDrive\Documents\dev\meteo-france-client\target\scala-3.0.0-M2\test-classes
[error] java.lang.NoClassDefFoundError: scala/collection/immutable/List
[error] xsbt.CachedCompilerImpl.run(CachedCompilerImpl.java:65)
[error] xsbt.CompilerInterface.run(CompilerInterface.java:41)
[error] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error] java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
[error] java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error] java.base/java.lang.reflect.Method.invoke(Method.java:567)
[error] sbt.internal.inc.AnalyzingCompiler.invoke(AnalyzingCompiler.scala:329)
[error] sbt.internal.inc.AnalyzingCompiler.compile(AnalyzingCompiler.scala:112)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$7(MixedAnalyzingCompiler.scala:192)
[error] scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[error] sbt.internal.inc.MixedAnalyzingCompiler.timed(MixedAnalyzingCompiler.scala:247)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4(MixedAnalyzingCompiler.scala:182)
[error] sbt.internal.inc.MixedAnalyzingCompiler.$anonfun$compile$4$adapted(MixedAnalyzingCompiler.scala:163)
[error] sbt.internal.inc.JarUtils$.withPreviousJar(JarUtils.scala:239)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compileScala$1(MixedAnalyzingCompiler.scala:163)
[error] sbt.internal.inc.MixedAnalyzingCompiler.compile(MixedAnalyzingCompiler.scala:210)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1(IncrementalCompilerImpl.scala:528)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileInternal$1$adapted(IncrementalCompilerImpl.scala:528)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5(Incremental.scala:175)
[error] sbt.internal.inc.Incremental$.$anonfun$apply$5$adapted(Incremental.scala:173)
[error] sbt.internal.inc.Incremental$$anon$2.run(Incremental.scala:459)
[error] sbt.internal.inc.IncrementalCommon$CycleState.next(IncrementalCommon.scala:116)
[error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:56)
[error] sbt.internal.inc.IncrementalCommon$$anon$1.next(IncrementalCommon.scala:52)
[error] sbt.internal.inc.IncrementalCommon.cycle(IncrementalCommon.scala:263)
[error] sbt.internal.inc.Incremental$.$anonfun$incrementalCompile$8(Incremental.scala:414)
[error] sbt.internal.inc.Incremental$.withClassfileManager(Incremental.scala:501)
[error] sbt.internal.inc.Incremental$.incrementalCompile(Incremental.scala:401)
[error] sbt.internal.inc.Incremental$.apply(Incremental.scala:167)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileInternal(IncrementalCompilerImpl.scala:528)
[error] sbt.internal.inc.IncrementalCompilerImpl.$anonfun$compileIncrementally$1(IncrementalCompilerImpl.scala:482)
[error] sbt.internal.inc.IncrementalCompilerImpl.handleCompilationError(IncrementalCompilerImpl.scala:332)
[error] sbt.internal.inc.IncrementalCompilerImpl.compileIncrementally(IncrementalCompilerImpl.scala:420)
[error] sbt.internal.inc.IncrementalCompilerImpl.compile(IncrementalCompilerImpl.scala:137)
[error] sbt.Defaults$.compileIncrementalTaskImpl(Defaults.scala:2357)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$2(Defaults.scala:2314)
[error] sbt.internal.io.Retry$.apply(Retry.scala:46)
[error] sbt.internal.io.Retry$.apply(Retry.scala:28)
[error] sbt.internal.io.Retry$.apply(Retry.scala:23)
[error] sbt.internal.server.BspCompileTask$.compute(BspCompileTask.scala:31)
[error] sbt.Defaults$.$anonfun$compileIncrementalTask$1(Defaults.scala:2310)
[error] scala.Function1.$anonfun$compose$1(Function1.scala:49)
[error] sbt.internal.util.$tilde$greater.$anonfun$$u2219$1(TypeFunctions.scala:62)
[error] sbt.std.Transform$$anon$4.work(Transform.scala:68)
[error] sbt.Execute.$anonfun$submit$2(Execute.scala:282)
[error] sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:23)
[error] sbt.Execute.work(Execute.scala:291)
[error] sbt.Execute.$anonfun$submit$1(Execute.scala:282)
[error] sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1(ConcurrentRestrictions.scala:265)
[error] sbt.CompletionService$$anon$2.call(CompletionService.scala:64)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[error] java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[error] java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
[error] java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
[error] java.base/java.lang.Thread.run(Thread.java:831)
[error]
[error] stack trace is suppressed; run 'last Test / compileIncremental' for the full output
[error] (Test / compileIncremental) java.lang.NoClassDefFoundError: scala/collection/immutable/List
[error] Total time: 0 s, completed 26 nov. 2021, 13:33:34
我會再寫一篇關于它的帖子:Sbt 無法在 Scala 3.0.0-M2 上找到 List 類定義
感謝所有在這里幫助過我的人
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/368221.html
