在IntelliJ中配置Gradle多模块项目包结构的疑问
问题解答
1. Gradle文件选择问题
如果打算把auto-api作为仓库auto的子模块管理,遵循以下规则:
- 仓库顶层的
settings.gradle(或settings.gradle.kts)需要添加include(":auto-api"),用来声明这个子模块 auto-api目录下保留自己的build.gradle(或build.gradle.kts),负责该模块的依赖、构建配置- 顶层的
build.gradle可以用来定义所有子模块共享的公共配置(比如统一的插件版本、依赖仓库)
如果只是把auto-api当作普通目录,不想用多模块结构,那直接用auto-api自己的Gradle文件,顶层的Gradle文件可以忽略(或者删除,避免干扰)。
2. 目录被识别为包的问题
这是因为你把整个src文件夹设为了Source Root,而Gradle/Maven的标准源码结构里,src/main/java才是真正的源码根目录。
- 操作步骤:右键
src/main/java,选择Mark Directory as->Sources Root - 然后右键原来的
src文件夹,选择Mark Directory as->Unmark as Sources Root
这样IntelliJ就会把src/main/java下的restservice识别为包,而main、java会被当作源码根的层级结构,不会被识别成包。
3. auto-api作为子模块是否合理
是否做成子模块取决于你的项目规划:
- 如果仓库
auto未来会包含多个关联模块(比如auto-service、auto-common等),把auto-api做成子模块非常合理,能统一管理多模块的构建、依赖,方便跨模块调用 - 如果仓库
auto只用来存放auto-api这一个项目,那没必要做成子模块,直接把auto-api的内容移到仓库根目录,或者保持当前目录但用单模块模式即可
内容的提问来源于stack exchange,提问作者nicku
相关产品推荐
相关产品推荐

