我有一个Maven项目(“ example-square”),该项目提供用于计算整数的平方和立方的类。 我还有一个sbt / Play框架项目(“ sbt_hello”),该项目使用“ example-square”中的square和cube类。我想在我的“ example-square”项目中添加许多新类(例如添加平方根类)。
为使所有功能协同工作,我将Maven项目作为库依赖项包含在build.sbt
中,但我也将其添加为IntelliJ中的模块(使用File > Project Structure > Modules > sbt_hello > Dependencies > Add Module Dependency...
)。
运行使用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 install(即使我这样做,这些jar也会被安装到.m2
中)。
我之前曾尝试通过File > Project Structure > Modules > sbt_hello > Sources > Add Content Root
添加模块,如here所述,但是IntelliJ在更新sbt项目时会不断删除此模块。
问:使用IntelliJ时,如何正确地从sbt / Play项目中指向实际的Maven项目?
顺便说一句,我对sbt / Play和Scala完全陌生(尽管我以前使用过Java)。
答案 0 :(得分:1)
resolvers += Resolver.mavenLocal
mvn install
项目安装到本地Maven存储库($ USER / .m2)。第二种方法是使用人工制品发布本地项目。