0

我有一个需要嵌入式 cassandra 的单元测试。所以我正在使用 "cassandra-unit" ,我可以从 intellij 成功运行所有测试的问题,但是当我通过

sbt test

由于此错误,嵌入式 cassandra 无法重新启动 dui:

java.lang.NoSuchMethodError: 'java.nio.file.FileStore org.apache.cassandra.io.util.FileUtils.getFileStore(java.nio.file.Path)'
[error]     at org.apache.cassandra.config.DatabaseDescriptor.guessFileStore(DatabaseDescriptor.java:1029)
[error]     at org.apache.cassandra.config.DatabaseDescriptor.applySimpleConfig(DatabaseDescriptor.java:470)
[error]     at org.apache.cassandra.config.DatabaseDescriptor.applyAll(DatabaseDescriptor.java:316)
[error]     at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:148)
[error]     at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:132)
[error]     at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:145)
[error]     at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:110)
[error]     at org.cassandraunit.utils.EmbeddedCassandraServerHelper.startEmbeddedCassandra(EmbeddedCassandraServerHelper.java:90)

因为我需要通过 sbt test 运行测试,因为我想将它与 jenkins 集成,因为我面临同样的问题。

这是我与 scala :2.12 的依赖关系:

    "com.datastax.spark" %% "spark-cassandra-connector-assembly" % "3.0.1" ,
    "spark.jobserver" %% "job-server-api" % "0.11.1" ,
    "org.apache.spark" %% "spark-core" % "3.0.2" ,
    "org.apache.spark" %% "spark-sql" % "3.0.2",
    "org.scalatest" %% "scalatest" % "3.1.1" % "test" excludeAll(excludeJpountz),
    "org.apache.cassandra" % "cassandra-clientutil" % "3.9" % "test" excludeAll(excludeJpountz),
    "org.cassandraunit" % "cassandra-unit" % "3.11.2.0" % "test" excludeAll(excludeJpountz)

我的 cassandra.yaml 有这样的:

commitlog_directory: target/embeddedCassandra/commitlog
cdc_raw_directory: target/embeddedCassandra/cdc
saved_caches_directory: target/embeddedCassandra/saved_caches

我已经对我的 java home 感到羞耻(build 1.8.0_271-b09),这与我使用的 intellij target 1.8 相同,

我试图从 cassandra.yaml 下的这些路径中删除目标,因为我读到当它执行 sbt 时,目标文件夹将不存在,但它给了我同样的错误。有没有其他方法可以编辑这些路径,或者任何人都可以解释从 intellij 运行它和 throw sbt 之间可能有什么区别?

4

0 回答 0