gpt4 book ai didi

maven - 让 Play/SBT 应用程序依赖于 Maven POM

转载 作者:行者123 更新时间:2023-12-04 16:11:04 26 4
gpt4 key购买 nike

我的 Play 2 应用程序是一个更大的 Maven 应用程序的子项目。 Play 2 应用程序在其父级中具有依赖项 - 它从中获取数据访问权限。因此,我希望应用程序的构建依赖于外部 Maven 项目。

基本上,我想写这个:

val main = play.Project(appName, appVersion, appDependencies).settings(
// settings
).dependsOn(externalPom(baseDirectory(_ / "../pom.xml")))

但这当然不是有效的语法。

我试过定义我的 play.Project像这样:
val main = play.Project(appName, appVersion, appDependencies).settings(
externalPom(baseDirectory(_ / "../pom.xml"))
)

失败是因为(我认为)覆盖导致 Play 不加载自己的异常

我尝试定义一个新的 Project像这样:
lazy val data = Project("data", file(baseDirectory(_ / "..).settings(
externalPom(baseDirectory(_ / "../pom.xml"))
)

并且取决于此,这不起作用,因为没有检测到主类。

关于如何做到这一点的任何建议?我是 SBT 的新手。

最佳答案

我成功使用 play2-maven-plugin

http://nanoko-project.github.io/maven-play2-plugin/maven/release/

使用此插件,您还可以为 play2 应用程序创建 maven 模块,并在 maven pom.xml 中定义依赖项(您的数据访问层)。该插件将确保 play 获取依赖项(它将 pom 依赖项复制到 lib 目录中的非托管依赖项中)。

使用这个插件还可以避免许多繁琐的重新构建,因为您在一个项目中拥有一切,因此您的 IDE 无需重新构建即可看到所有模块的更改。

此外,当您使用该插件时,您不会遇到从本地 maven 存储库更新快照 maven 依赖项的问题(此 sbt 错误 https://github.com/sbt/sbt/issues/321 )。

关于maven - 让 Play/SBT 应用程序依赖于 Maven POM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16179671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com