我正在尝试从VCS导入项目(好吧,我实际上是第一次这样做)这是我的(导入)项目的结构:
BTW。在多次尝试更改这些目录的属性(在其上下文菜单中)之后,将显示此屏幕。
在这些源文件'我有以下错误:
有一次它对badugi.client
什么都没有,但它只在badugi.server
报告了这个错误。我完全不知道它是如何工作的......
同样目录中的类也看不到对方。
这是来自ClientWorker
类的代码,它位于Server
所在的同一目录中(如第一张图片所示),因此它应该知道Server
是什么。
我很确定这段代码在我朋友的IDE中运行良好。如何配置IntelliJ以使其工作?
从目录结构来看,你有两个包客户端和服务器,但代码需要包badugi.client和badugi.server。
这是一种解决方法:
package badugi.server
)要么
我在文件夹src下创建了一个解决了这个问题的包。
这在这里很棘手。在我的例子中,文件夹结构是:
COM / APPNAME / rateUS /模型/ FileName.java
我在FileName.java文件中指定的包名是:
package com.appName.rateUs.models;
请注意包名称之间的细微差别:它应该是rateUS而不是ratesUs
希望这有助于某人!
可以告诉Intellij忽略此错误。
单击文件>设置>编辑器>检查,然后在右侧搜索“错误的包语句”(在Java下,可能的错误)并取消选中它。
我有同样的问题,并通过修改我的项目的.iml文件修复它:
从:
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/wrong/entry/here" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
至:
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
在导入此项目时,以某种方式将包文件夹指定为根源目录。
我也看过几次这个错误,我总是能够通过正确识别项目的模块设置来解决它。在IntelliJ中,右键单击顶级项目 - >“打开模块设置”。这应该打开一个窗口,其中整个项目结构和内容被标识为“源文件夹”,“测试源文件夹”等。确保这些设置正确。对于“源文件夹”,确保该文件夹是您的src /或src / java(或您的源语言),视情况而定
将其添加到pom.xml
(在project
标签内)
<build>
<sourceDirectory>src/main/java</sourceDirectory>
</build>
src/main/java
是您要设置的源文件夹。如果您的pom.xml
文件中已有此行,请检查它是否正确。
你应该在模块部分的项目结构(Ctrl + Alt + Shift + s)中声明你的文件夹中哪些是源包(蓝色),哪些是测试...
由于损坏或可能过时的intellij文件,我遇到了同样的问题。在更新到14.0.2之前,我有一个完美的工作项目,其中包含正确命名的包和文件层次结构。
在更新之后,maven编译工作顺利但Intellij报告了特定包上的所述错误(具有类似特征的其他包不受影响)。
我没有进一步调查,但我删除了我的.iml文件和.idea文件夹,无效的缓存,重新启动了IDE,并重新打开了项目,依赖于我的maven配置。
注意:这有效删除了运行和调试配置!
也许知道intellij工作区文件的人可以对此发表评论吗?
对于那些进一步搜索的人的另一个评论:SC管理项目中的重构可能留下灰尘 - 我碰巧有一个“旧”文件夹,它重复了当前的包结构。如果.iml或.idea文件对这些包有任何引用,那么intellij可能会与旧包的引用混淆。祝好运,StackExchangers同胞们。
更新:我删除了引用的maven项目中的一些文件,并且返回了怪癖。所以,我的帖子绝不是最后的答案。
我只是在与类似的问题作斗争。我解决它的方法是设置Intellij模块的根源文件以匹配原始项目根文件夹。然后我需要在项目导航面板中标记一些文件夹为Excluded(不应该在新项目中使用的那个,对我来说它是在Android下使用的部分)。就这样。
对于使用遵循docs包约定的Kotlin的人:
在纯Kotlin项目中,推荐的目录结构是遵循包结构,省略了公共根包(例如,如果项目中的所有代码都在“org.example.kotlin”包及其子包中,那么带有“org”的文件.example.kotlin“包应直接放在源根目录下,”org.example.kotlin.foo.bar“中的文件应位于源根目录的”foo / bar“子目录中。
IntelliJ doesn't support this yet。您唯一能做的就是禁用此警告,并接受IDE在更改文件夹/文件结构时无法帮助您进行重构。