为什么我的IDEA项目无法建立?

时间:2017-07-24 01:37:11

标签: intellij-idea build compiler-errors kotlin

我正在构建a software platform,并且作为概念证明(并确定它需要什么),我正在构建一个名为Telegram RP的即时消息,使用我在此处列出的平台回购:{{3 }}

现在,我已决定将特定于JVM的代码与通用代码分开,但在我第一步这样做时,它不会编译。

我很难过。我已经三重检查了语言级别的可见性,删除并重新添加了Git和IDEA模块,对依赖层次结构进行了三重检查,确保了并行构建已经关闭......然而仍然声称存在&# 39;在构建时是一个未解决的引用,尽管编辑器允许我中/控制点击导航到导入。

任何人都可以帮助我理解如何理解当我点击构建和运行时,它所抱怨的软件包实际存在吗?

我鼓励您克隆这些并尝试在IDEA 2017.2中构建它们:

此处我的设置的SSCCE ,克隆完所有回购后应该可以正常编译:https://github.com/BlueHuskyStudios/Blue-Husky-Software-Platform

此处包含相关项目的回购:https://github.com/BenLeggiero/SO-SSCCE-45271471 https://github.com/BenLeggiero/Telegram-RP

具体来说,这个子仓库:permalink to repo when I asked this question

以下是失败的行:https://github.com/BlueHuskyStudios/Husky-UI/tree/For-Telegram-RP

import org.bh.tools.ui.generic.geometry.FractionOval
                       ^ ~~~~~
Error:(8, 24) Kotlin: Unresolved reference: generic

在我移动特定于桌面JVM的代码https://github.com/BlueHuskyStudios/Husky-UI/blob/6887f492c37583d82b49ebf36b12d68a3a1dcb32/JVM/src/org/bh/tools/ui/swing/Graphics%20Extensions.kt#L8from Husky UI/Core之前,这并没有发生,所以我必须假设它涉及到......我只是无法弄清楚这是为什么。

我的环境:

  

IntelliJ IDEA 2017.2
  Build#IC-172.3317.76,建于2017年7月15日
  JRE:1.8.0_152-release-915-b5 amd64
  JVM:JetBrains s.r.o的OpenJDK 64位服务器VM   Windows 10 10.0

3 个答案:

答案 0 :(得分:4)

在弄乱了一段时间后弄清楚了。我会发布git diff输出,以便您可以将其直接应用到您的文件中。

首先,要在子模块lib/Husky-UI/JVM/Husky UI JVM/JVM.iml中进行更改(请记住:您应该编辑正确的存储库并更新此项目的git子模块):

-    <orderEntry type="module" module-name="Husky UI/Core" exported="" />
+    <orderEntry type="module" module-name="Husky UI" exported="" />

然后继续Core/Core.iml并删除这两行:

-    <orderEntry type="module" module-name="Husky UI/Core" />
-    <orderEntry type="module" module-name="Husky UI/JVM" />

最后,更改Desktop JVM/Desktop JVM.iml

+    <orderEntry type="module" module-name="Husky UI" exported="" />
+    <orderEntry type="module" module-name="Husky IO" exported="" />
+    <orderEntry type="module" module-name="JVM" exported="" />
     <orderEntry type="module" module-name="Blue Base" />
-    <orderEntry type="module" module-name="Husky IO" />
     <orderEntry type="module" module-name="Core" />
-    <orderEntry type="module" module-name="Husky UI/Core" />
-    <orderEntry type="module" module-name="Husky UI/JVM" />

告诉我它是如何为你效劳的。

答案 1 :(得分:3)

重构后的模块名称更改都是关键,因此无法找到依赖项。

1。 在Telegram-RP/lib/Husky-UI/JVM/Husky UI JVM/JVM.iml更改

<orderEntry type="module" module-name="Husky UI/Core" exported="" />

<orderEntry type="module" module-name="Husky UI"  exported="" />

2。 在Telegram-RP/Desktop JVM/Desktop JVM.iml

更改

<orderEntry type="module" module-name="Husky UI/Core" />
<orderEntry type="module" module-name="Husky UI/JVM" />

<orderEntry type="module" module-name="Husky UI" />
<orderEntry type="module" module-name="JVM" />

事实上,您可以在Project视图中以粗体文本查看模块名称: enter image description here

答案 2 :(得分:1)

不确定是否因为我在打开您的项目时遇到了问题。

在您的.idea/modules.xml中,您导入了两个Husky UI模块 - 一个来自U:/在$ PROJECT_DIR $之外的硬编码位置 - 您可以删除它并查看它是否修复了您的问题 - 您应该更改它是一个$ PROJECT_DIR $引用,无论如何它都适用于其他机器。

所以删除这一行: <module fileurl="file://U:\Libraries\Programs\Git\Telegram-RP\lib\Husky-UI\JVM\Husky UI.iml" filepath="U:\Libraries\Programs\Git\Telegram-RP\lib\Husky-UI\JVM\Husky UI.iml" group="Libraries" />

所以你只剩下: <module fileurl="file://$PROJECT_DIR$/lib/Husky-UI/Core/JVM/Husky UI.iml" filepath="$PROJECT_DIR$/lib/Husky-UI/Core/JVM/Husky UI.iml" group="Libraries/UI" />