当前位置: 首页 > 知识库问答 >
问题:

有没有办法在 intellij 项目中运行两个依赖的模块?

欧阳声
2023-03-14

我将我的工作区从Eclipse迁移到Intellij,在Intellij中,我有一个从两个模块构建的项目,运行配置设置在一个模块上,但主类位于第二个模块中。

在Eclipse中,它工作正常,但在Intellij中,我得到“错误:无法找到或加载主类[类名]”。

我在项目结构中创建了一个依赖项,并对运行的配置进行了大量操作,但这并没有起到任何作用。

有什么想法吗?有没有人在intellij中对这种结构有经验?

添加更多详细信息:

    < li >我将两个eclipse项目导入intellij - UI项目,该项目使用来自核心项目的jar。 < li >这两个项目是相互依赖的,我的目标是从核心项目运行使用jar的UI项目,并能够在IDE中调试< br >这两个项目的代码。 < li >在Eclipse中,这是通过在UI(运行)项目之前将核心项目添加到调试配置类路径中的类路径来完成的。

在intellij中,我在不工作的项目之间添加了运行时依赖。项目正在运行,但是是从Jar运行,而不是从第二个项目的代码运行——所以我不能调试代码。

主类在核心项目中,我试图从UI项目的类路径中删除创建的核心jar,并使用模块依赖项运行它,但它在主类未找到错误时失败。

想法?

谢谢

共有2个答案

章誉
2023-03-14

“项目正在运行,但来自Jar,而不是第二个项目的代码-因此我无法调试代码。”

我也想这么做。你的回答没那么清楚。以下是我所做的,它在我的案例中很有效,

项目结构

单击“添加内容根目录”,然后添加依赖项项目的 src 文件夹。

然后,我可以在那些< code>src文件中放置断点,IntelliJ将在调试中单步执行这些断点。

(注意,您可能会看到警告“< code >可用于该类的替代源... ")

参考

来自https://www . jetbrains . com/help/idea/creating-and-managing-modules . html

“模块通常有一个内容根。您可以添加更多内容根目录。例如,如果代码片段存储在计算机上的不同位置,这可能很有用。

(另请参阅如何在Intellij中调试项目,同时在另一个项目中设置断点)

戴正阳
2023-03-14

OK明白了 - 核心jar应该在编译范围的依赖项中,以及提供范围内的模块中,主类可以来自核心项目并且它工作。感谢所有受访者

 类似资料:
  • 我有一个多模块Maven项目,有模块“app”和“域”。应用依赖于域。域模块有公共和私有代码。公共代码在包中。 在Domain模块的pom中,我添加了maven jar插件的执行,该插件使用分类器“api”(仅包含公共类)生成一个额外的项目工件。 在应用程序模块中,我在域模块上添加了一个“运行时”范围的依赖项(因此所有类都存在于运行时),并在分类的“API”上添加了编译时范围的依赖。这是为了确保应

  • 我正在从事一个Spring项目,其中单元测试有自己的配置,称为UnitTestConfig,它有几个定义类似于主应用程序文件的bean(几乎是一个副本)。保持结构不变,我正在对主应用程序服务器代码进行一些更改,但是这会在UnitTestConfig中引发错误,因为它没有注入所需的bean。这些bean没有在单元测试中使用,有没有办法阻止UnitTestConfig尝试注入这些bean?这是一个巨大

  • 例如:我们有一个health Utility jar,它作为maven依赖项添加到另一个项目a中。我们希望从health Utility jar中获得项目a的maven版本

  • 大家好,请指导如何在Xcode中解决:WebdriverAgent项目的问题。 在WebDriverAgent内部使用命令:./scripts/bootstrap.sh-d后,按照要求遵循所有先决条件 cd/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/open。复制WebdriverAgent文件夹cd

  • 我为一些groovy代码创建了一个intellij Gradle项目。Gradle正确地解析了依赖项,并将它们添加到modules选项卡中,但是它们没有加载到选项卡中...因为这是不可能编译的项目,它给我的错误,在缺少库。我做错了什么?

  • 问题内容: 我们正在开发S60版本,该平台具有不错的Python API。 但是,关于Android上的Python尚无任何官方资料,但是由于Jython存在,有没有办法让蛇和机器人一起工作? 问题答案: 一种方法是使用: 开源Python库,用于快速开发利用创新用户界面的应用程序,例如多点触控应用程序。 可在和上运行。你可以在所有受支持的平台上运行相同的代码。