Gradle运行构建 Gradle插件 Gradle构建一个JAVA项目 Gradle提供了一个命令行来执行构建脚本。它一次可以执行多个任务。本章介绍如何使用不同的选项执行多个任务。 执行多个任务 您可以从一个构建文件执行多个任务。Gradle可以使用 gradle命令 处理该构建文件。该命令将按照它们列出的顺序编译每个任务,并使用不同的选项执行每个任务以及依赖项。 示例 - 有四个任务 - task1,task2,task3和task4。 任务3和任务4取决于任务1和任务2。看看下面的图表。 在上述四个任务中,相互依赖,用箭头符号表示。看看下面的代码。复制并粘贴到 build.gradle 文件中。 task task1 << { println 'compiling source' } task task2(dependsOn: task1) << { println 'compiling unit tests' } task task3(dependsOn: [task1, task2]) << { println 'running unit tests' } task task4(dependsOn: [task1, task3]) << { println 'building the distribution' } 您可以使用以下代码来编译和执行上述任务。 C:\> gradle task4 test 如果命令执行成功,您将得到以下输出。 :task1 compiling source :task2 compiling unit tests :task3 running unit tests :task4 building the distribution BUILD SUCCESSFUL Total time: 1 secs 排除任务 从执行中排除任务时,可以使用-x选项和gradle命令,并提及要排除的任务的名称。 使用以下命令从上述脚本中排除task4。 C:\> gradle task4 -x test 如果命令执行成功,您将得到以下输出。 :task1 compiling source :task4 building the distribution BUILD SUCCESSFUL Total time: 1 secs 当发生故障时继续生成 一旦任何任务失败,Gradle将中止执行并使构建失败。即使发生故障,您也可以继续执行。为此,您必须对gradle命令使用- continue选项。它分别处理每个任务及其依赖关系。重要的一点是,它会捕获每个遇到的故障并在构建执行结束时进行报告。假设一个任务失败,那么依赖的后续任务也不会被执行。 选择要执行的构建 当您运行gradle命令时,它会在当前目录中查找构建文件。您可以使用-b选项与绝对路径一起选择特定的构建文件。以下示例显示从位于 subdir / 中的 myproject.gradle 文件选择项目'hello' 。 ** task hello << { println "using build file '$buildFile.name' in '$buildFile.parentFile.name'." } 您可以使用以下命令来执行上述脚本。 C:\> gradle -q -b subdir/myproject.gradle hello 如果命令执行成功,您将得到以下输出。 using build file 'myproject.gradle' in 'subdir'. 获取生成信息 Gradle提供了几个内置任务来检索关于任务和项目的信息细节。这对了解构建的结构和依赖关系以及调试问题很有用。您可以使用项目报告插件将任务添加到项目中,这将生成这些报告。 列出项目 您可以使用 gradle -q projects 命令列出所选项目及其子项目的项目层次结构。下面是该示例,使用以下命令列出构建文件中的所有项目。 C:\> gradle -q projects 输出 - ------------------------------------------------------------ Root project ------------------------------------------------------------ Root project 'projectReports' +--- Project ':api' - The shared API for the application \--- Project ':webapp' - The Web application implementation To see a list of the tasks of a project, run gradle <project-path>:tasks For example, try running gradle :api:tasks 该报告显示每个项目的说明(如果指定)。您可以使用以下命令指定描述。将其粘贴到 build.gradle 文件中。 description = 'The shared API for the application' 列表任务 您可以使用以下命令列出属于多个项目的所有任务。 C:\> gradle -q tasks 如果命令执行成功,您将得到以下输出。 ------------------------------------------------------------ All tasks runnable from root project ------------------------------------------------------------ Default tasks: dists Build tasks ----------- clean - Deletes the build directory (build) dists - Builds the distribution libs - Builds the JAR Build Setup tasks ----------------- init - Initializes a new Gradle build. [incubating] wrapper - Generates Gradle wrapper files. [incubating] Help tasks ---------- buildEnvironment - Displays all buildscript dependencies declared in root project 'projectReports'. components - Displays the components produced by root project 'projectReports'. [incubating] dependencies - Displays all dependencies declared in root project 'projectReports'. dependencyInsight - Displays the insight into a specific dependency in root project 'projectReports'. help - Displays a help message. model - Displays the configuration model of root project 'projectReports'. [incubating] projects - Displays the sub-projects of root project 'projectReports'. properties - Displays the properties of root project 'projectReports'. tasks - Displays the tasks runnable from root project 'projectReports' (some of the displayed tasks may belong to subprojects). To see all tasks and more detail, run gradle tasks --all To see more detail about a task, run gradle help --task <task> 您可以使用以下命令来显示所有任务的信息。 C:\> gradle -q tasks --all 如果命令执行成功,您将得到以下输出。 ------------------------------------------------------------ All tasks runnable from root project ------------------------------------------------------------ Default tasks: dists Build tasks ----------- clean - Deletes the build directory (build) api:clean - Deletes the build directory (build) webapp:clean - Deletes the build directory (build) dists - Builds the distribution [api:libs, webapp:libs] docs - Builds the documentation api:libs - Builds the JAR api:compile - Compiles the source files webapp:libs - Builds the JAR [api:libs] webapp:compile - Compiles the source files Build Setup tasks ----------------- init - Initializes a new Gradle build. [incubating] wrapper - Generates Gradle wrapper files. [incubating] Help tasks ---------- buildEnvironment - Displays all buildscript dependencies declared in root project 'projectReports'. api:buildEnvironment - Displays all buildscript dependencies declared in project ':api'. webapp:buildEnvironment - Displays all buildscript dependencies declared in project ':webapp'. components - Displays the components produced by root project 'projectReports'. [incubating] api:components - Displays the components produced by project ':api'. [incubating] webapp:components - Displays the components produced by project ':webapp'. [incubating] dependencies - Displays all dependencies declared in root project 'projectReports'. api:dependencies - Displays all dependencies declared in project ':api'. webapp:dependencies - Displays all dependencies declared in project ':webapp'. dependencyInsight - Displays the insight into a specific dependency in root project 'projectReports'. api:dependencyInsight - Displays the insight into a specific dependency in project ':api'. webapp:dependencyInsight - Displays the insight into a specific dependency in project ':webapp'. help - Displays a help message. api:help - Displays a help message. webapp:help - Displays a help message. model - Displays the configuration model of root project 'projectReports'. [incubating] api:model - Displays the configuration model of project ':api'. [incubating] webapp:model - Displays the configuration model of project ':webapp'. [incubating] projects - Displays the sub-projects of root project 'projectReports'. api:projects - Displays the sub-projects of project ':api'. webapp:projects - Displays the sub-projects of project ':webapp'. properties - Displays the properties of root project 'projectReports'. api:properties - Displays the properties of project ':api'. webapp:properties - Displays the properties of project ':webapp'. tasks - Displays the tasks runnable from root project 'projectReports' (some of the displayed tasks may belong to subprojects). api:tasks - Displays the tasks runnable from project ':api'. webapp:tasks - Displays the tasks runnable from project ':webapp'. 以下是带有说明的命令列表。 老号 命令 描述 1 gradle -q help -task <任务名称> 提供关于特定任务或多个任务的使用信息(如路径,类型,描述,组)。 2 gradle -q依赖关系 提供选定项目的相关性列表。 3 gradle -q api:依赖关系 - 配置<任务名称> 提供与配置相关的限制依赖关系列表。 4 gradle -q buildEnvironment 提供构建脚本依赖项的列表。 五 gradle -q dependencyInsight 提供对特定依赖关系的洞察。 6 Gradle -q属性 提供选定项目的属性列表。 Gradle插件 Gradle构建一个JAVA项目