【发布时间】: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