【问题标题】:IntelliJ sbt: Incorrectly resolved dependency pathsIntelliJ sbt:错误解析的依赖路径
【发布时间】:2014-11-02 22:16:36
【问题描述】:

我遇到了一个问题,即 IntelliJ(Windows 7 上的 IntelliJ 13.1.4)似乎在使用 SBT 的多模块设置中解决了不正确的路径。

最初我使用 sbt-idea 插件生成 IntelliJ 项目文件,但每次我加载我的项目时,我发现 IntelliJ 再次使用 SBT 刷新其依赖项,并在模块文件 (.iml) 中生成不正确的依赖项路径。

相关部分(仅在本部分出错):

...
<orderEntry type="module-library">
   <library name="SBT: unmanaged-jars">
     <CLASSES>
       <root url="file://$USER_HOME$/.bnd/cache/https%3A%2F%2Fkate.rnd.hq.company.net%2Fartifactory%2Fsimple%2Fbundles-release-local%2Fcom.google.guava%2F14.0.1%2Fbundles" />

...

当 IntelliJ 使用“SBT”刷新项目时,它会变成:

...
<orderEntry type="module-library">
  <library name="SBT: unmanaged-jars">
    <CLASSES>
      <root url="file://$MODULE_DIR$/../&#10;      ~/.bnd/cache/https%3A%2F%2Fcompany.net%2Fartifactory%2Fsimple%2Fbundles-release-local%2Fcom.google.guava%2F14.0.1%2Fbundles/com.google.guava.jar&#10;    " />
...

正如您所见,由于某种原因,URL 被弄乱了。 我可以看到 IntelliJ 在打开我的项目后立即运行 SBT 相关任务: “刷新'project_name'SBT项目”等... 这改变了路径。 (注意:当被问到时,我“忽略”检测到的 sbt 更改。)

我尝试直接在 iml 文件中修复这些路径,但 IntelliJ 在刷新时继续覆盖我的更改。

到目前为止,可能有 2 个选项有助于取得进展:

1) 我一直试图让 IntelliJ 只依赖基于 sbt-idea 插件或由 sbt-idea 插件生成的项目文件。为此,我不希望 IntelliJ 触发任何 SBT 解析或更改我的模块文件。

所以问题变成了:如何阻止 IntelliJ 刷新我的 SBT 项目?

在 IntelliJ 设置的 SBT 选项卡中,我看到了一个配置,但我无法删除或禁用它。

2) 当然,我最好希望正确解析路径,但这可能是 IntelliJ 中的错误或解释 sbt 任务的方式。如果我可以使用开箱即用的 SBT 支持,那就更好了,但我无法指出哪里出了问题,这使得它变得困难。 也欢迎在这方面提出任何建议。

更多背景信息:

我们的项目正在使用 bnd 与 OSGi 一起工作,并且我们创建了 sbt 任务以将其集成到我们的构建过程中。 在 IntelliJ 中使用 SBT 内置支持不适用于我们当前的设置(我忘记了原因),但在每个包/jar/组件级别上,我可以使用 sbt-idea 插件生成 IntelliJ 项目文件,并且效果很好。 最近我们使用多模块设置将 sbt 中的 bnd 支持移至“根”级别,我遇到了这个问题。

亲切的问候,

汉斯

【问题讨论】:

    标签: intellij-idea sbt


    【解决方案1】:

    这在 Intellij 14 中已修复。使用内置 sbt 支持我的项目不再需要任何工作。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2016-06-19
      • 2012-08-27
      • 2022-08-05
      • 2017-07-28
      • 2018-04-10
      • 2012-06-11
      • 2019-07-03
      相关资源
      最近更新 更多