Seg*_*ult 5 java intellij-idea sbt playframework-2.0
我有 2 个项目,项目 A 和项目 B。项目 A 是一个 Play2 应用程序,它依赖于项目 B(这是一个客户端库)。目前项目 B 是从我们的 SBT 工件中提取的。我想设置 IntelliJ,以便从我计算机上的项目源中提取项目 B,而不是从其中指定的工件中提取。
我已将项目 B 添加为项目 A 的模块,并将模块 B 添加到模块 A 的依赖项中。然后我将模块 B 置于依赖项列表的最顶部。代码的静态分析似乎工作正常,当我更新项目 A 的代码以使用我在项目 B 中更新的新方法签名时没有显示编译错误。但是,当我运行 Play 应用程序时,我得到了一个编译错误表明方法签名不正确。
有没有办法覆盖运行时用于 SBT 和 Play 应用程序的模块?
你可以通过 sbt 来做到这一点。在你的build.sbt,例如:
val localDep = ProjectRef(file("/Users/me/projects/b"), "b")
dependsOn(localDep)
Run Code Online (Sandbox Code Playgroud)
IntelliJ 会将此依赖项作为模块导入。但是,您应该删除库依赖项,以避免类路径冲突。
当然,这使得该项目难以共享,除非其他开发人员将该项目放在同一位置。在这种情况下,我会创建一个多项目构建,这通常是具有单独结果工件的紧密耦合项目的最佳选择。
另一种选择是 git 项目依赖项:
val projectDep = ProjectRef(uri("git://github.com/me/b"),"b")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
620 次 |
| 最近记录: |