【发布时间】:2016-05-09 10:37:19
【问题描述】:
我将一个 Leiningen 项目导入 Intellij,与一些现有的 Java 和 Scala 模块并排放置。我想从我的 Clojure 模块中调用这些模块中的函数,但我不确定如何定义这种依赖关系。我去了项目设置-> 模块和通常缺少的“依赖项”选项卡,这让我相信除了 Leiningen 项目文件之外,我不允许在任何地方表达依赖项(我玩过 Leiningen 项目编辑器并且无法弄清楚如何在那里执行此操作...)。
如果有人好奇 Intellij 是如何查看这个模块的,这里是 .iml 文件。
<?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" />
【问题讨论】:
-
Java 和 Scala 模块是如何构建的?它们是否安装在您本地的 Maven 存储库中?
-
我在我的 clj 模块上看到一个“依赖项”选项卡
-
@PeakCode 不,它们是使用 sbt 构建的,但我真的不想发布工件(我在一些论坛上看到人们建议使用本地 Maven 存储库,正如您可能建议的那样)。我在问是否有一种方法可以完全通过 IDE 强制依赖,这样我就可以在不配置额外发布设置的情况下立即重新构建/解决(IntelliJ 通过 IDE 构建这些 Scala 项目没有问题,我可以从其他依赖它们Scala/Java 模块没有问题)。
-
我打开了一个 gradle 项目,然后将 lein 项目添加为一个新模块(文件 -> 新建 -> 来自现有源的模块)
-
我将其作为 lein 项目打开
标签: java intellij-idea clojure cursive