如何将本地maven项目作为模块添加到sbt/Play项目中?
我有一个Maven项目(“示例平方”),它提供了计算整数的平方和立方的类。 我还有一个sbt/Play框架项目(“sbt_hello”),它使用了“example square”中的square和cube类。我想在我进行的过程中用一些新类(例如,添加一个平方根类)扩展我的“示例平方”项目 为了使所有的东西都能协同工作,我在如何将本地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>依赖项>添加模块依赖项…)
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。