gradle - IntelliJ IDEA - 创建或重新创建我不想要或已删除的目录
问题描述
设想
我正在使用 IntelliJ IDEA 中的 Gradle 模块构建 Kotlin 应用程序。
我遇到了一个问题,对于我在项目中创建的每个 Gradle 模块,IntelliJ IDEA 会自动为我不想要的源集创建和/或重新创建目录结构。
我在 Windows 10 x64 上运行 IntelliJ IDEA 2018.1.2。
重现步骤
- 打开 IntelliJ IDEA 并“创建新项目”
- 创建一个 Gradle 项目
- 从“其他库和框架”仅检查“Kotlin (Java)”
- 给项目一个 GroupId、ArtifactId 和 Version
- 选中“使用自动导入”并取消选中“为每个源集创建单独的模块”
- 结束。此时 IDE 应该会显示并且 Gradle 应该同步。
初始项目结构应如下所示。我只扩展了与这个问题相关的目录。
template-app
├ .idea
├ gradle
├ src
│ ├ main
│ │ ├ java
│ │ ├ kotlin
│ │ └ resources
│ └ test
│ ├ java
│ ├ kotlin
│ └ resources
├ build.gradle
├ gradlew
├ gradlew.bat
└ settings.gradle
我不需要该src
目录,因此我已将其删除,现在项目结构如下所示。
template-app
├ .idea
├ gradle
├ build.gradle
├ gradlew
├ gradlew.bat
└ settings.gradle
接下来我在我的项目中创建一个新的 Gradle 模块(mod-one),现在项目结构如下所示。
template-app
├ .idea
├ gradle
├ mod-one
│ ├ src
│ │ ├ main
│ │ │ ├ java
│ │ │ ├ kotlin
│ │ │ └ resources
│ │ └ test
│ │ ├ java
│ │ ├ kotlin
│ │ └ resources
│ └ build.gradle
├ src
│ ├ main
│ │ ├ java
│ │ ├ kotlin
│ │ └ resources
│ └ test
│ ├ java
│ ├ kotlin
│ └ resources
├ build.gradle
├ gradlew
├ gradlew.bat
└ settings.gradle
注意mod-one现在包含一个src
目录,但不仅如此,src
我之前删除的目录也被重新创建,包括它的子目录。
我的预期结构
父模块(例如template-app)根本不需要
src
目录。项目的这个级别将没有代码。每个模块(例如mod-one)将不包含任何测试,因此只需要一个
main
源集/模块而不需要一个test
源集/模块。测试将包含在单个模块中(例如mod-tests),因此只需要
test
源集/模块,而不需要main
源集/模块。不会有 Java 代码,因此我不需要
java
目录。在大多数情况下,我不需要
resources
,我很乐意在必要时手动添加这些。
基于以上几点,结构应该是这样的。
template-app
├ .idea
├ gradle
├ mod-one
│ ├ src
│ │ ├ main
│ │ │ └ kotlin
│ └ build.gradle
├ mod-test
│ ├ src
│ │ └ test
│ │ └ kotlin
│ └ build.gradle
├ build.gradle
├ gradlew
├ gradlew.bat
└ settings.gradle
问题
为什么 IntelliJ IDEA 创建和/或重新创建我不想要的目录,我该如何阻止它?
解决方案
取消选中设置(首选项)中的自动为空内容根目录创建目录选项| 构建、执行、部署 | 构建工具 | 摇篮。
每次从 gradle 重新导入时启用此选项,IDE 会根据您的 build.gradle 文件自动创建目录结构。
推荐阅读
- c++ - 以指针为参数的c ++函数问题
- migration - 如何将两个 Matomo 安装迁移到一个安装中?
- reactjs - 在单独的文件中反应路由器
- reactjs - react native 是否支持 SVG 图像?
- unity3d - DllNotFoundException:LogitechSteeringWheelEnginesWrapper.dll
- c++ - C99 中的 _Complex 类型的行为是否类似于 C++ 中的 std::complex<>?
- python - Python Jupyter 中的 OverflowError 使用 pd.read_sql_query
- java - 在用户输入中获取 LocalDateTime
- julia - Julia - 可以判断程序是否正在运行?
- python - DRF - 发布请求期间的 MultiPartParse