Gradle 格拉德尔已建项目结构

Gradle 格拉德尔已建项目结构,gradle,gradlew,Gradle,Gradlew,我看到了许多Gradle构建的Java/Groovy项目的示例,它们具有以下结构: some-app/ src/ main/ test/ docs/ README.md build.gradle gradlew gradlew.bat settings.gradle gradle.properties gradle/ *.gradle 我知道,build.gradle是主构建

我看到了许多Gradle构建的Java/Groovy项目的示例,它们具有以下结构:

some-app/
    src/
        main/
        test/
    docs/
    README.md
    build.gradle
    gradlew
    gradlew.bat
    settings.gradle
    gradle.properties
    gradle/
        *.gradle
我知道,build.gradle是主构建脚本,gradle.properties是其属性文件。但是设置。gradle真的让我很困惑。在里面我看到:

rootProject.name = "someApp"
但它似乎属于
gradle.properties
。我还想知道
gradlew
gradlew.bat
文件来自哪里,它们似乎是生成的

最后,我想知道为什么在
gradle/
dir下有这么多*.gradle文件:这些是插件或某种扩展脚本。它们都是从主
build.gradle
中提取的,如下所示:

apply "gradle/fizz.gradle"
apply "gradle/buzz.gradle"
etc.
因此:

  • 哪些属性应该进入
    settings.gradle
    中,而哪些属性不应该进入
    gradle.properties
  • 如何生成
    gradlew
    /
    gradlew.bat
    文件
  • 为什么有人会有这么多不同的
    *.gradle
    文件?为什么不只是一个大的
    build.gradle
    buildscript
  • 1)
    gradle.properties
    是普通属性文件,而
    settings.gradle
    也是一个构建脚本。您可以在那里添加一些代码,这些代码将在构建期间执行。通常,当您有多模块项目时,需要此文件

    2) 当您在项目构建目录中键入
    gradle tasks
    时(空build.gradle足以看到它),您将看到
    wrapper
    task。此任务用于生成您询问的脚本。更多


    3) 原因是所有这些文件都有明确分开的不同职责。

    谢谢@Opal(+1)-那么对于上面的第3个问题,这些多个
    *.gradle
    文件是否存在,以便您可以跨多个项目重用不同的构建脚本?build.gradle始终存在,gradle.properties不时存在(例如,当您需要更改JVM设置时),多模块项目中的settings.gradle不是多个项目。要在多个项目中重用脚本,您可以实现一个插件。