Intellij idea IntelliJ 14.1.4中的项目路径有些奇怪

Intellij idea IntelliJ 14.1.4中的项目路径有些奇怪,intellij-idea,packages,Intellij Idea,Packages,所以,在我的intelliJ项目中,有些事情开始表现得很奇怪。我甚至尝试删除iml和.idea数据,但都没有成功 我去项目结构。在那里,我有一个内容根。有了ING,我有三个文件夹——一个用于我的jar(和jni库),一个用于示例,一个用于工具(只是为使用jar编写的工具)。罐子、样品和工具标记为蓝色(来源) 在jar文件夹中,我有我的源代码树(com\company\projectname\XXX)、一个lib文件夹、一个用于我的JNI lib的文件夹和一个我创建的名为“junit”的文件夹,这

所以,在我的intelliJ项目中,有些事情开始表现得很奇怪。我甚至尝试删除iml和.idea数据,但都没有成功

我去项目结构。在那里,我有一个内容根。有了ING,我有三个文件夹——一个用于我的jar(和jni库),一个用于示例,一个用于工具(只是为使用jar编写的工具)。罐子、样品和工具标记为蓝色(来源)

在jar文件夹中,我有我的源代码树(com\company\projectname\XXX)、一个lib文件夹、一个用于我的JNI lib的文件夹和一个我创建的名为“junit”的文件夹,这是这个问题的焦点。它在项目结构中以绿色标记(测试)

在其中,我有一个与我的代码非常相似的文件夹结构:com\company\projectname\junit

当我在junit\com\company\xxx\junit中打开一个文件时,我的
包com.company.xxx.junit下有一个大的红色下划线行,它告诉我:“包名'com.company.xxx.junit'与文件路径'junit.com.company.xxx.junit'不对应

我的印象是,将文件夹标记为“测试”将指示IDE将其用作“父”文件夹(如果愿意的话),这样就无需预先添加另一个文件夹名称

我如何将代码与单元测试分开,并实际上创建两个junit测试套件(一个用于内部使用,另一个是用于分发的“框架”),将它们放在一个“伞形”文件夹下,而不必在包名前面加上该文件夹名

更新:项目结构:


根据您的屏幕截图,问题在于
junit
目录是另一个源目录的子目录,即
MyProvider
。源目录(无论是“生产”源目录还是单元测试源目录)不能是另一个源目录的子目录

您需要:

  • junit
    目录移出
    MyProvider
    ,使其成为同级目录,或
  • 取消将
    MyProvider
    标记为源目录,在
    MyProvider
    中创建一个
    main
    (或某些类似目录),将其标记为源目录,然后将
    com
    目录/包移动到
    main
  • 选项2是处理此问题的首选方法,因为它遵循一个非常常见的目录结构标准

    更新(以下是OP的评论)

    下面是几个屏幕截图,显示了您想要的配置:

    我删除了.IdeaIC15文件夹并重新开始。目前正在工作。配置中一定有什么东西被弄糊涂了,无论是作为更新的一部分,还是在操作过程中。我现在已经备份了一份副本,所以如果这种情况再次发生,我将有一些东西要检查。

    你的印象是正确的。为了了解她发生了什么e、 请附上项目结构对话框的屏幕截图好吗?@yole补充道。修改了一些名称,但路径和深度反映了现实情况。我用MyProvider(未标记为源根)进行了尝试,没有任何更改。我尝试了你的建议:我创建了一个MyProvider\src文件夹,将其标记为源根,然后将com.*移到它下面。所有java文件都在迁移过程中进行了重构,以包含“src”作为包名的前导。测试也没有任何更改。这是否是IntelliJ中的一个错误?如果源或测试根不在内容根级别,则将其名称添加到包名中?我怀疑这是一个错误。我始终将源和测试根放在sub-direc中保守党(因此不在内容根目录下)如果发生这种情况,在ItILIJ论坛上会有大量的流量。这听起来像是在你移动的时候有点困惑,或者你的配置中还有一个问题。你可能想考虑关闭想法,删除<代码> .IDEAs/COD>目录,删除任何<代码> *MIL<代码>文件,然后从头开始。n配置项目。我还添加了一些可能有帮助的屏幕截图。我再次删除了.idea文件夹和.iml文件,并重新创建了项目,但没有成功。事实上,将com.*结构移动到名为“src”的新文件夹下只会加剧问题-现在这些源文件抱怨包名“com.*”与文件路径“src.com.*”。唯一有效的方法是将“junit”文件夹在树中向上移动一级(因此它位于内容根目录中)并将其标记为测试文件夹。此外,我只能通过右键单击“将文件夹标记为”关联菜单选项将内容根目录下的文件夹标记为源文件夹、测试文件夹等。如果我转到“项目设置”,我可以标记任何我喜欢的文件夹。我还使用IntelliJ社区版。这会有所不同吗?我尝试过在最新的EAP版本中,同样的问题。今天,它又回到了行为不正确的状态。有没有什么地方ide正在进行设置更改,我可以看看是否有问题?至少可以说,行为的不一致性令人沮丧。