如何告诉 Gradle 和 Intellij 项目的文件夹结构不同?



我使用Gradle和包装器,默认的文件夹结构是这样的:

.
├── settings.gradle
├── build.gradle
├── gradle.properties
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
└── gradlew.bat

但是,我想把它改成:

.
├── gradle
|   ├── build.gradle
│   ├── settings.gradle
│   ├── gradle.properties
│   └── wrapper
│       ├── gradlew
│       ├── gradlew.bat
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
└── src
├── main
└── test

除了我不知道如何告诉IntelliJ关于文件夹结构的事实之外,我不知道如何为Gradle更改它,因为与更改文件夹结构相关的环境选项已被弃用:

-b,——build-file(已弃用)

指定构建文件。例如:gradle——build-file=foo.gradle。默认值是build。Gradle . build.gradle.kts.

-c,——settings-file(已废弃)

指定设置文件。例如:gradle——settings-file=somewhere/else/settings.gradle

你不能告诉Gradle和Intellij IDEA你使用了一个非标准的Gradle构建布局。老实说,除非你有充分的理由,否则你甚至不应该考虑这个问题。主要有两个原因:

  • 熟悉Gradle项目的开发人员在开始Gradle项目时会立即感到如家。
  • 一个非标准的构建文件和目录布局需要在IDE的额外逻辑(这是不存在的),并且需要在命令行上构建时提供额外的参数。

请参考Gradle issue #16402。

弃用描述构建布局的命令行选项

-b-c命令行选项有效地用于描述Gradle的非标准构建布局。这是有问题的,因为这意味着无论何时在构建中使用Gradle,例如无论何时从IDE、CI、命令行或其他工具调用Gradle,都必须使用特定的选项组合。这些命令行选项也有一些潜在的令人惊讶的行为,比如运行目标目录中的设置脚本。

我们认为没有足够强大的用例来证明保留这些选项,我们应该删除它们(通过弃用)。如果我们发现有一些用例,我们可能会考虑用更多的自描述契约替换这些选项,例如构建脚本名称的约定。