热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Intellij:基于SBT的Scala项目不是用Java9构建的

如何解决《Intellij:基于SBT的Scala项目不是用Java9构建的》经验,为你挑选了2个好方法。

我试图将我的基于Scala/sbt的项目切换到Java 9.如果我使用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编译器)

  

但不幸的是,没有帮助.



1> 小智..:

    打开[ 文件 - >设置 - >构建,执行,部署 - >编译器 ]

    将" --add-modules java.se.ee " 添加到[ Shared build process VM options ]


如果我没有Intellij但正在使用sbt怎么办?

2> Naman..:

把它作为一个临时建议的答案,除非有一个明确的解决方案,并将其他几点联系在一起.

似乎scala尚未完成,因为在scala/scala-dev中可以看到与JDK-9一起使用的准备就绪- 支持JDK 9


另一方面,解决依赖性的javax.xml.bind方式目前可分为两类: -

您的项目使用了一个库requires javax.xml.bind,在这种情况下,除了在重组之前等待该库移动到模块化结构之外,您手中没有太多东西.但是,这可以通过--add-modules javax.xml.bind作为编译器参数提供的选项暂时被攻击.

您的项目javax.xml.bind直接使用.在这种情况下,理想的解决方案是远离模块并相应地使用依赖[ jaxb-api:2.3.0]和重构代码.


推荐阅读
author-avatar
yyjj7212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有