java - sbt 添加 java 项目

标签 java scala intellij-idea sbt

在 IDEA IntelliJ 中开发一些 Scala 软件。 (如果有必要,它还具有 Android 功能)。假设我有两个项目:

P1,用scala编写,使用sbt作为构建工具

P2,java编写,使用gradle作为构建工具

我想从 P2 调用一些代码,有它的完整源代码。所以我将 P2 作为一个模块导入到我的 IntelliJ scala 项目中。但是当我使用 sbt-shell 编译我的 sbt 项目时,它告诉我一个错误,它找不到任何在 P2 中声明的类和包的定义。我想我需要在我的 build.sbt 文件中创建一个正确的引用,这样它才能理解定义的来源。我找到了一个解决方案,它建议像这样向 build.sbt 添加非托管 java 源路径:

unmanagedSourceDirectories in Compile += file("mydependency")

但问题是依赖本身也有依赖。当我尝试编译它时,sbt 告诉我它找不到该依赖项的定义。所以我需要一种在 build.sbt 中引用完整 java 项目的方法,这样我就可以通过 sbt shell 编译整个项目(事实上,我被迫使用非常 sbt shell)。

有什么建议吗?

最佳答案

根据我的理解,更好(但不同)的解决方案是在您的本地存储库中发布 jar(例如 publishLocal) ,并依赖它。

关于java - sbt 添加 java 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48097470/

相关文章:

java - 修改 "Black Box"Servlet响应输出

java - 生成一个包含整数 (0, 1, -1, 2, -2, 3, -3, ...) 的无限 Stream<Integer>

scala - 使用 Scala 的 HashMap 时如何定义键等价?

scala - 光滑/Scala : What is a Rep[Bind] and how do I turn it into a value?

java - IntelliJ 中的文档记录速度慢(不快)?

java - 输入不匹配异常(我认为这是一个愚蠢的错误)

java - 阿尔法优势.co : Historical data is unable to fetch with 5 min interval

java - 如何在 Play Framework 中禁用http端口?

intellij-idea - 如何获取智能IDEA的代码映射?

editor - IntelliJ IDEA 的 Vibrant Ink 主题