如何将本地maven项目作为模块添加到sbt/Play项目中?

如何将本地maven项目作为模块添加到sbt/Play项目中?,maven,intellij-idea,sbt,Maven,Intellij Idea,Sbt,我有一个Maven项目(“示例平方”),它提供了计算整数的平方和立方的类。 我还有一个sbt/Play框架项目(“sbt_hello”),它使用了“example square”中的square和cube类。我想在我进行的过程中用一些新类(例如,添加一个平方根类)扩展我的“示例平方”项目 为了使所有的东西都能协同工作,我在build.sbt中将Maven项目作为库依赖项包括在内,但在IntelliJ中也将其作为模块添加(使用文件>项目结构>模块>sbt\u hello>依赖项>添加模块依赖项…)

我有一个Maven项目(“示例平方”),它提供了计算整数的平方和立方的类。 我还有一个sbt/Play框架项目(“sbt_hello”),它使用了“example square”中的square和cube类。我想在我进行的过程中用一些新类(例如,添加一个平方根类)扩展我的“示例平方”项目

为了使所有的东西都能协同工作,我在
build.sbt
中将Maven项目作为库依赖项包括在内,但在IntelliJ中也将其作为模块添加(使用
文件>项目结构>模块>sbt\u hello>依赖项>添加模块依赖项…
)。 运行使用square和cube类的测试类是完全成功的。代码中的所有更改都会立即反映到测试中

但是,当我刷新sbt项目或尝试运行Play项目时,我会收到错误消息,即存在未解析的依赖项路径

我猜在IntelliJ中将它作为一个模块添加是允许测试成功运行的原因,而将它添加到库依赖项是让sbt寻找JAR的原因(我确实想要它?),它只是在寻找错误的位置。根据错误日志,sbt只查看以下文件夹:

[warn]  module not found: example#example-square;1.0-SNAPSHOT
[warn] ==== local: tried
[warn]   C:\Users\just_me\.ivy2\local\example\example-square\1.0-SNAPSHOT\ivys\ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/example/example-square/1.0-SNAPSHOT/example-square-1.0-SNAPSHOT.pom
[warn] ==== local-preloaded-ivy: tried
[warn]   C:\Users\just_me\.sbt\preloaded\example\example-square\1.0-SNAPSHOT\ivys\ivy.xml
[warn] ==== local-preloaded: tried
[warn]   file:/C:/Users/just_me/.sbt/preloaded/example/example-square/1.0-SNAPSHOT/example-square-1.0-SNAPSHOT.pom
当然,软件包不在那里,因为它是一个Maven项目,我没有运行mvn安装(即使我运行了,JAR也会安装到
.m2

我以前尝试过通过
文件>项目结构>模块>sbt_hello>源代码>添加内容根目录添加模块,但IntelliJ在更新我的sbt项目时不断删除此模块

Q:使用IntelliJ时,如何正确地从sbt/Play项目中指向实际的Maven项目?

顺便说一句,我对sbt/Play和Scala一般来说是完全陌生的(不过我以前使用过Java)

  • 添加到build.sbt中:
    resolvers+=Resolver.mavenLocal
  • 通过
    mvn安装将项目安装到本地maven存储库($USER/.m2)
  • 将依赖项添加到build.sbt文件

  • 第二种选择是使用artifactory发布本地项目。

    谢谢!这是有效的-有没有其他方法不使用“mvn安装”?这是最简单的解决方案。Sbt只从存储库(ivy或maven)读取数据。这是有效的。但我正在寻找一个选项,可以跳过mvn安装的这个手动步骤。因为每当我更改代码时,我都需要确保更新jar。