我正在处理一个图书馆和一个并行依赖它的应用程序,我想分别发布它们。由于我经常编辑两者,我希望能够在IntelliJ中加载它们,以便"转到定义"工作正常(即将我带到另一个项目的可编辑源),重建将包含在另一个模块中进行的更改,而无需重新运行sbt publishLocal
并刷新其他项目。
我设法让IntelliJ通过手动添加多个SBT项目并手动编辑它们的依赖项来实现这一点,但是一旦我添加了库依赖项并刷新了SBT定义,我的编辑就消失了。
如何让IntelliJ了解另一个项目的libraryDependency
应该被实现并作为模块导入,而不是从本地maven存储库导入?
答案 0 :(得分:0)
我也在寻找解决您问题的方法。但是,到目前为止,我希望可以提供一种可以接受的解决方法。
您可以从项目中临时删除Ivy2依赖项,并将其定义为sbt中的项目。例如,如果您的 OtherProject 与当前项目位于同一目录中,则可以按如下所示添加它:
Get-Acl : Cannot find path '\\SERVER\Work_Block_A\MDX1112 - Xxxxxx Xxxxxxx
Xxxxxxxxxx' because it does not
exist.
At C:\Users\felipe.sa\Desktop\Script\NewProjectFolder\NewProject-WP_-
_ProductionV1.ps1:125 char:8
+ $acl = Get-Acl $NewNetworkPath
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (:) [Get-Acl], ItemNotFoundException
+ FullyQualifiedErrorId :
GetAcl_PathNotFound_Exception,Microsoft.PowerShell.Commands.GetAclCommand
You cannot call a method on a null-valued expression.
At C:\Users\felipe.sa\Desktop\Script\NewProjectFolder\NewProject-WP_-
_ProductionV1.ps1:128 char:1
+ $acl.SetAccessRule($rule)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
然后,您需要使用 dependsOn 指定对 OtherProject 的依赖关系:
lazy val otherProject = RootProject(file("../OtherProject"))
然后IntelliJ将 OtherProject 导入到当前的工作区中,您可以在这两者上进行工作。
在提交之前,您必须将依赖关系还原为Ivy2规范。