【问题标题】:multi module maven project structure in eclipseeclipse中的多模块maven项目结构
【发布时间】:2012-03-12 05:54:47
【问题描述】:

我在一个主项目下有两个模块

主要
|
|
--module-a
|
|
--module-b

我使用 eclipse->new ->Maven 项目,eclipse->new->maven 模块创建它。

文件系统中的结构看起来正确。但是在eclipse中,它在包资源管理器中将module-a、module-b显示为两个新项目。

我的主要项目是这样的。

我见过很少的多模块项目,其中模块存在于包资源管理器的主项目中。主要项目有

模块-a/src/main/java
模块-a/src/test/java
模块-a/src/resources/java
模块-b/src/main/java
模块-b/src/test/java
模块-b/src/resources/java。

如何将我的项目转换成这样的样子?

【问题讨论】:

    标签: eclipse maven


    【解决方案1】:

    我解决了这个问题如下:

    在“Project Explorer”下点击“View Menu”(小三角)并选择“Filters and Customization...”

    在“内容”选项卡下勾选“嵌套项目”

    最后,在“预设过滤器”选项卡下勾选“嵌套项目:当项目显示为嵌套时隐藏文件夹”和“嵌套项目:如果显示为嵌套则隐藏顶级项目”。

    通过这样做,我想出了以下结构。

    我使用的是 Spring Tool Suite 3:版本:3.9.11

    【讨论】:

    • 感谢过滤提示!但对于我的情况,“Maven 模块”有助于删除冗余文件,但保持反应器 pom.xml 可供修改。
    【解决方案2】:

    您也可以在早期版本的 Eclipse 中执行此操作。关闭并删除子模块项目(因为它们已经存在于父文件夹中)。现在单击主项目上的属性-> 项目构面-> 转换为构面形式。这将自动检测Java,单击应用,确定。现在您可以看到这些模块是使用 Source 文件夹创建的

    【讨论】:

      【解决方案3】:

      从 Eclipse 4.5.M5(您已经可以在 http://eclipse.org/downloads 下载)开始,Project Explorer 视图有一个参数来分层显示项目,以更好地处理这种情况。详情请见https://www.eclipse.org/eclipse/news/4.5/M5/

      【讨论】:

        【解决方案4】:

        如果您浏览实际的文件系统(或者使用 Eclipse 中的“导航器”视图),您会发现子模块实际上存在于主父项目文件夹下。

        当您使用“包资源管理器”视图时,Eclipse 足够好(足够聪明或其他)可以将它们拉出来。我想这会让你在高度模块化的项目中更容易找到和导航。

        但是,如果您正确设置了父 POM,如果您愿意的话,您可以为您的模块化项目提供一个平面结构(我还不能让它工作,到目前为止我认为它与子模块类路径之类的?)。

        大卫。

        【讨论】:

          【解决方案5】:

          我见过很少的多模块项目,其中存在模块 在包资源管理器的主项目中。

          这就是maven eclipse插件的作用。它只是为 Maven 多模块项目的每个模块创建具有多个源目录的单个项目。

          如果您想在 Eclipse 中查看一些层次结构 - 使用工作集。使用父名称创建工作集,将模块-a 和模块-b 添加到其中,并且在视觉上它将与 eclipse 工作区中的其他项目分开。

          【讨论】:

            【解决方案6】:

            基本上,Eclipse 不支持 Maven 构建项目的方式。

            通过使用 M2E,可以将 Maven 作为构建的一部分执行,但这样您就失去了 Eclipse 的项目管理和增量构建功能。

            您也可以简单地在 IDE 中使用 Eclipse 布局,并在构建服务器中使用 Maven 构建,但这样您必须确保两个构建相同。

            【讨论】:

            • 我可以这样做,但是,我希望我的项目出现在这个布局中 module-a/src/main/java module-a/src/test/java module-a/src/resources/ java module-b/src/main/java module-b/src/test/java module-b/src/resources/java 我正在使用m2eclipse插件。但它看起来不是那样的。我该如何解决?
            • 目前,我知道这样做的好方法,因为 Eclipse 使用与 Maven 多模块结构不兼容的内部项目表示(资源 API)。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-05-16
            • 2014-03-08
            • 1970-01-01
            • 2016-12-12
            • 1970-01-01
            • 2011-10-13
            • 1970-01-01
            相关资源
            最近更新 更多