java - 如何在 IntelliJ 中使用接口(interface)构建多模块项目?

标签 java module intellij-idea gradle modularity

我正在尝试以模块化方式(使用 Guice 进行模块和 DI)构建我的应用程序(使用 Gradle 构建并在 IntelliJ 中开发,这在这里似乎非常重要)。问题是我希望模块仅通过接口(interface)进行通信,所以理想情况下我想实现这种结构:

+-- project
   +-- module1
      +-- src
         +-- iface
         +-- impl
         +-- test
      +-- build.gradle
   ..
   +-- moduleX
      +-- src
         +-- iface
         +-- impl
         +-- test
      +-- build.gradle

build.gradle 中,我只想包含 project('moduleX', configuration : 'iface') 或类似的内容。

在 Gradle 中,我可以使用 sourceSets 等来做到这一点,这太酷了!但问题是 IntelliJ 无法识别它,因为我是在 gradle 脚本中执行的!对于 IntelliJ 来说,它仍然只是一个模块。

这很奇怪,因为即使 Maven 也支持类似的项目结构(如果我没记错的话)。这是否意味着还有其他方法可以实现我想要的目标? IntelliJ 希望我使用这种方法,还是只是希望我将 iface 和其余部分作为单独的模块分开(这是我想避免的事情,我不想在我的项目中使用太多模块,因为它会减慢开发环境)?

最佳答案

您通常会将其构建为多项目构建,而不是使用源集,该构建将映射到 IntelliJ 中的多模块项目,以及 Eclipse 中包含多个项目的工作区。要了解有关多项目构建的更多信息,请查看 Gradle User Guide 中的相应章节。 .

关于java - 如何在 IntelliJ 中使用接口(interface)构建多模块项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19967703/

相关文章:

java - 使用 Jackson 库进行 Bukkit ItemStack 序列化

ruby - 模块类 << 自常量

sql-server - 导入模块 : The specified module 'SqlServer' was not loaded because no valid module file was found in any module directory

intellij-idea - IntelliJ - 删除以前打开的项目列表?

java - 如何使用 IntelliJ 和 JDBC 建立 SSH 隧道并连接到数据库?

java - Apache Ignite Cassandra 驱逐

java - java中静态方法的同步问题

java - Android Studio 3.6.3 不生成所有 BE 常量

ruby-on-rails - 将模块/类中的代码注入(inject)到另一个模块/类中

intellij-idea - Intellij IDEA Scala测试-编译错误,但在sbt中可以