【问题标题】:Viewing non-project file(s) in Maven-based IntelliJ projects在基于 Maven 的 IntelliJ 项目中查看非项目文件
【发布时间】:2019-05-14 23:13:02
【问题描述】:

我们将 Maven 和 IntelliJ 用于许多多模块项目。我们设置为根pom.xml 文件是项目文件。开发人员在导入根 pom.xml 后,可以自定义他们的项目环境,但我们不会将 IntelliJ 项目置于源代码控制之下或以其他方式保存它们。当开发人员第一次开始开发新项目时,她会导入根 pom.xml 并关闭并运行。

这种做法有问题。我们的源代码树中有其他文件与 Maven 和构建我们的 Java 工件没有直接关系,但我们希望在 IntelliJ 中查看和修改。这些不相关的文件不会显示在 IntelliJ 项目资源管理器中。在我们有整个不相关目录的情况下,我们通过在临时基础上向项目添加额外的“内容根”定义来做到这一点。但是,如果单个文件存在于源代码树的根目录或某个其他项目目录中,并且未被 Maven 构建过程使用,则它不会显示在 IntelliJ 中,并且您无法添加源代码的根目录树作为新的“内容根”。例如,我们在树的根部有一个Jenkinsfile,Maven 并不关心它,但我们作为开发人员当然会关心。我们目前必须在另一个代码编辑器中编辑这个文件。

有没有一种好方法可以让这些类型的文件显示在 IntelliJ 项目视图中?理想情况下,我们希望有某种方法可以向pom.xml 文件添加一些内容,以使这些内容显示出来,否则会被我们的构建忽略。但是,如果我们必须这样做,一种临时添加这些文件的方法就可以了。我们找不到任何一致的方法来做到这一点。谁能告诉我们如何解决这个问题?

更新:我没有将 IntelliJ 项目文件存储在源代码树的根目录中。根 pom.xml 文件是一个不产生任何东西的聚合 pom。这是我的“项目”视图的样子:

源码树的根是inletfetch_if2,你可以看到这里没有表示。 if2_all 节点是我的 IntelliJ 项目文件所在的位置。

【问题讨论】:

  • 根据@CrazyCoder 的建议,我尝试通过一组最小的项目模块来重现我的问题,这些模块以我们的主要源代码树的方式布置。我无法重现该问题...根文件就在那里。因此,我重命名了有问题的项目,并从根 pom.xml 再次创建它。令我惊讶的是……这些文件也在我的新项目中。我尝试以不同的方式导入(选择 pom.xml 作为项目,选择根目录,“New->From existing sources...”)。我得到了不同的结果,但我总能找到源代码树根目录下的文件...
  • ...所以看来我现有的项目只是以某种方式搞砸了。它缺少代表树根(根目录)的节点,因此不会让我访问该目录中的文件。我不知道它是如何或为什么会这样的。但我很好。我将在我刚刚构建的新 IntelliJ 项目中工作。谢谢疯子!让我尝试重现问题。

标签: java maven intellij-idea


【解决方案1】:

IntelliJ IDEA 项目视图将显示位于父 pom.xml 旁边的项目根目录中的文件:

你可以get this sample project here

如您所见,Maven聚合父项目位于hello-world-ear目录的根目录下,packaginghello-world-war目录下有2个子项目。

如果您在项目根目录中添加Jenkinsfile,它将显示在项目视图中。

您是否使用其他结构不同的配置?如果有,请分享Minimal, Complete, and Verifiable example 以获得帮助。

【讨论】:

  • 查看我的设置,我没有将 IntelliJ 项目文件存储在我们树的根目录中,即根 pom.xml 文件所在的位置。我想正因为如此,并且因为根 pom 是一个聚合 pom,所以我的项目视图中没有一个节点代表我们的源代码树的根。
  • 我会尝试整理一个最小的例子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 2013-06-15
  • 1970-01-01
  • 2019-03-02
  • 1970-01-01
  • 2015-09-27
相关资源
最近更新 更多