我正在构建a software platform,并且作为概念证明(并确定它需要什么),我正在构建一个名为Telegram RP的即时消息,使用我在此处列出的平台回购:{{3 }}
现在,我已决定将特定于JVM的代码与通用代码分开,但在我第一步这样做时,它不会编译。
我很难过。我已经三重检查了语言级别的可见性,删除并重新添加了Git和IDEA模块,对依赖层次结构进行了三重检查,确保了并行构建已经关闭......然而仍然声称存在&# 39;在构建时是一个未解决的引用,尽管编辑器允许我中/控制点击导航到导入。
任何人都可以帮助我理解如何理解当我点击构建和运行时,它所抱怨的软件包实际存在吗?
此处我的设置的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#L8,from 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
答案 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" />
答案 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" />