有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

intellij idea如何告诉草书Clojure模块依赖于本地Java/Scala模块?

我将一个Leiningen项目导入Intellij,与一些现有的Java&;Scala模块。我想从Clojure模块调用这些模块中的函数,但我不确定如何定义这种依赖关系。我转到项目设置->;模块和通常缺少的“依赖项”选项卡,这让我相信除了Leiningen项目文件之外,我不允许在任何地方表达依赖项(我使用了Leiningen项目编辑器,也不知道如何在那里实现…)

这是你的电话号码。iml文件,如果有人好奇Intellij如何查看此模块

<?xml version="1.0" encoding="UTF-8"?>
<module cursive.leiningen.project.LeiningenProjectsManager.displayName="testproject:0.1.0-SNAPSHOT" cursive.leiningen.project.LeiningenProjectsManager.isLeinModule="true" type="WEB_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/classes" />
<exclude-output />
<content url="file://$MODULE_DIR$">
  <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/dev-resources" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/resources" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
  <excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Leiningen: clojure-complete:0.2.3" level="project" />
<orderEntry type="library" name="Leiningen: org.clojure/clojure:1.6.0" level="project" />
<orderEntry type="library" name="Leiningen: org.clojure/tools.nrepl:0.2.10" level="project" />


共 (1) 个答案

  1. # 1 楼答案

    所以,我最终能够做到这一点。。。正如dAni所建议的,我能够创建一个新的Clojure项目(通过IntelliJ,这次我做了“lein new clj test”,然后尝试将其导入IntelliJ),创建一个Leiningen构建文件,处理该构建文件,然后在项目结构中查看模块的依赖项选项卡

    尽管如此,REPL仍然找不到类。因此,我必须编辑运行配置,以便在“普通JVM进程”中使用nREPL,这让我可以选择我可能要使用其类路径的模块

    Run config for normal JVM process nREPL

    我讨厌成为一个接受我自己答案的人(特别是因为这有一些限制…我想在最后使用Gorilla REPL,所以可能会为此设计一个不同的策略),但我认为这很好地回答了最初的问题,希望它能帮助别人。我认为上面的策略本质上是使用Leiningen来解决依赖关系,但实际上并不用于REPL,因此Leiningen的依赖关系在类路径上可用,但REPL是通过IntelliJ以其他方式启动的