我尝试将基于Scala/sbt的项目切换到Java9。如果我用sbt编译项目,它就可以工作。
如果我尝试使用IntelliJ的build选项构建项目,我会立即得到错误
Error:Module 'xyz' production: java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
我尝试添加模块作为依赖项
libraryDependencies += "javax.xml.bind" % "jaxb-api" % "2.3.0"
并添加到IntelliJ的编译器设置中(javac以及scala编译器)
<option name="ADDITIONAL_OPTIONS_STRING" value="--add-modules java.xml.bind" />
但不幸的是,没有帮助。
除了@nullpointer answer之外,还有如何使用--添加模块的简短说明
打开
文件
-
除非有明确的解决方案,否则将此作为一个临时建议,并将其他几点合并在一起。
scala似乎还没有完全准备好与JDK-9一起使用,这在scala/scala dev-Support JDK 9上可以看到
另一方面,解决对javax依赖的方法。xml。bind当前可分为两类:-
>
您的项目使用一个库,而
又需要javax。xml。bind
,在这种情况下,除了等待库在重组之前移动到模块化结构之外,您手头没有多少事情要做。但是,--addmodules javax会暂时攻击它。xml。作为编译器参数提供的bind
选项。
您的项目使用了
javax。xml。直接绑定
。在这种情况下,理想的解决方案是离开模块,利用依赖关系[jaxbapi:2.3.0
],并相应地重构代码。
我的身材有问题。未使用IntelliJ(旗舰版2020.2.3)正确提取sbt文件。我使用IntelliJ向导(文件)创建了一个新的Scala sbt项目 sbt工具窗口选择外部依赖项,但我的项目“外部依赖项”根本不包含库,即使在我刷新项目之后。还有我的身材。sbt文件中有很多错误,比如IntelliJ无法正确识别它,但我已经安装了Scala插件,所以我不知道还能做什么? 在这里,您可以看到我已经
我正在从GitHub导入我的Scala-SBT项目。我选择 导入后, IntelliJ不考虑作为Scala-SBT项目。 我没有找到我的项目,它在中为零。 如何直接从GitHub导入Scala SBT项目。 是不是强制要求我将本地和导入作为Scala SBT项目分为两个步骤? 或 我能从GitHub直接导入吗。
我从未尝试过在Scala中使用任何类型的调试器,也从未尝试过在IntelliJ Idea中调试任何东西(而我一直在使用Idea编写Scala代码)。现在,由于最近的IntelliJ Idea 13已获得内置SBT支持,我尝试使用此功能(而不是旧的SBT Idea SBT插件方式)导入SBT项目,这似乎是可行的。但我不知道在这种情况下如何运行和调试程序。当然,我可以使用传统的SBT命令行方式来构建和
我可以手动创建这些文件夹,并将其标记为源根。然而,这是微不足道的。所以我的问题是:为什么IntelliJ IDEA新项目向导不生成文档中所说的目录结构?我做错什么了吗?我检查了首选项,找不到任何似乎相关的东西。
在过去的几个小时里,我一直在努力设置IntelliJ IDEA Ultimate以便与scala/sbt一起使用,但目前我遇到了一个错误,我甚至不知道如何正确地查找。不幸的是,谷歌搜索错误代码并没有帮助:(。 因此,每次我建立一个新的项目或导入一个现有的项目时,遵循以下说明: https://scala-lang.org/documentation/getting-start-intellij-t
... 尽管它将创建项目和正确的结构。但是当我进入项目的新文件夹并运行sbt命令时,出现了这个错误: 我使用JDK 1.8、sbt 0.13.16和Scala IDE 4.7.0 为什么会这样?我该怎么解决呢?