繁体   English   中英

IntelliJ外部库编译时错误

[英]IntelliJ External Libraries Compile Time Errors

我在我的java项目中为fedmsg添加了一个外部库。 我的代码可以编译并且运行良好。 我需要来自fedmsg类的其他东西,所以我分叉了它们的存储库并打开了请求请求,然后开发就开始了。

回到IntelliJ,我为更新的代码重建了doc,src和.jar类,然后将其重新导入到IntelliJ中。 IntelliJ没有显示错误,甚至可以自动完成我的代码,如下所示: 在此处输入图片说明

但是,当我在IntelliJ和atlassian SDK中编译代码时,出现以下错误:

错误:(49、19)Java:找不到符号符号:方法断开连接()位置:org.fedoraproject.fedmsg.FedmsgConnection类型的变量fedmsg

断开连接方法在FedmsgConnection类中,并且该类作为外部库存在,该错误表明该库可以:

在此处输入图片说明

知道发生了什么吗? 注意:当我用sbt编译fedmsg-java .jars时,显然没有错误。

编辑:另一件事很奇怪,如果您“按符号搜索”(在IntelliJ中按Ctrl + shift + alt + N ),我可以键入“ disconnect()”,并且fedmsg类中的方法显示出来。

我假设像我一样,您拥有Scala插件,但没有其他人。 如果您的SBT项目很好并且您的IDEA项目感到困惑,则删除“ .idea”目录。 因此,您最终只会得到一个SBT项目。 现在,您可以从IntelliJ IDEA重新从头开始创建项目。 为此,请执行文件->打开并导航到项目的SBT图标。 SBT图标是三个蓝色水平线(汉堡面包)。 可能您可以保留所有设置,只需检查是否已选择正确的JDK。

我不倾向于内的IntelliJ编译,而是用~package从SBT。 但是,无论何时build.sbt文件发生更改,我有时确实都需要刷新IntelliJ项目-如果您转到build.sbt文件,则IntelliJ会通知您。 为了刷新项目,我需要确保JVM options低于默认值。 目前对我-XX:MaxPermSize=334M是“最大堆大小,MB”为568和“ VM参数”为-XX:MaxPermSize=334M 我在刷新过程中遇到的另一个问题是build.sbt中的build.sbt -我不得不将它们删除,以避免IntelliJ堆栈跟踪。

只要所有jar依赖项都是正确的,但是IntelliJ不会编译项目-语法高亮显示所有错误都证明了这一点,那么请从IntelliJ重新开始。 到目前为止,我需要定期进行此操作。

我通过从第三方库SBT项目(由“ sbt compile”创建)中手动导入(复制和粘贴)*。class文件来解决此问题,这些文件是IntelliJ期望的位置,即:

“(项目根目录)\\类”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM