Gradle - Executando um Build

O Gradle fornece uma linha de comando para executar o script de compilação. Ele pode executar mais de uma tarefa por vez. Este capítulo explica como executar várias tarefas usando diferentes opções.

Execução de várias tarefas

Você pode executar várias tarefas a partir de um único arquivo de construção. O Gradle pode lidar com esse arquivo de compilação usandogradle command. Este comando irá compilar cada tarefa na ordem em que são listadas e executar cada tarefa junto com as dependências usando opções diferentes.

Example- Existem quatro tarefas - tarefa1, tarefa2, tarefa3 e tarefa4. A tarefa3 e a tarefa4 dependem da tarefa 1 e da tarefa2. Dê uma olhada no diagrama a seguir.

Nas 4 tarefas acima são dependentes umas das outras representadas por um símbolo de seta. Dê uma olhada no código a seguir. Copiar pode colá-lo embuild.gradle Arquivo.

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'
}

Você pode usar o código a seguir para compilar e executar a tarefa acima.

C:\> gradle task4 test

Resultado:

:task1
compiling source
:task2
compiling unit tests
:task3
running unit tests
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Excluindo Tarefas

Ao excluir uma tarefa da execução, você pode usar a opção –x junto com o comando gradle e mencionar o nome da tarefa que deseja excluir.

Use o seguinte comando para excluir task4 do script acima.

C:\> gradle task4 -x test

Resultado:

:task1
compiling source
:task4
building the distribution

BUILD SUCCESSFUL

Total time: 1 secs

Continuando a construção quando ocorre uma falha

O Gradle abortará a execução e falhará na compilação assim que qualquer tarefa falhar. Você pode continuar a execução mesmo quando ocorre uma falha. Para isso, você deve usar a opção –continue com o comando gradle. Ele lida com cada tarefa separadamente, juntamente com suas dependências. E o principal ponto importante é que ele irá capturar cada falha encontrada e relatar no final da execução da construção. Suponha que se uma tarefa falhar, as tarefas subsequentes dependentes também não serão executadas.

Selecionando qual compilação executar

Quando você executa o comando gradle, ele procura um arquivo de compilação no diretório atual. Você pode usar a opção –b para selecionar um arquivo de construção específico junto com o caminho absoluto. O exemplo a seguir selecionando um projeto hello demyproject.gradle arquivo que está localizado no subdir/ dê uma olhada nisso.

task hello << {
   println "using build file '$buildFile.name' in '$buildFile.parentFile.name'."
}

Você pode usar o seguinte comando para executar o script acima.

C:\> gradle -q -b subdir/myproject.gradle hello

Resultado:

using build file 'myproject.gradle' in 'subdir'.

Obtendo Informações do Build

O Gradle fornece várias tarefas integradas para recuperar os detalhes das informações sobre a tarefa e o projeto. Isso pode ser útil para entender a estrutura e as dependências de sua compilação e para depurar problemas. Você pode usar o plugin de relatório de projeto para adicionar tarefas ao seu projeto, o que irá gerar esses relatórios.

Listagem de projetos

Você pode listar a hierarquia do projeto selecionado e seus subprojetos usando gradle –q projectscomando. Aqui está o exemplo, use o seguinte comando para listar todos os projetos no arquivo de construção.

C:\> gradle -q projects

Resultado:

------------------------------------------------------------
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

O relatório mostra a descrição de cada projeto, se especificado. Você pode usar o seguinte comando para especificar a descrição. Cole nobuild.gradle Arquivo.

description = 'The shared API for the application'

Tarefas de listagem

Você pode listar todas as tarefas que pertencem aos vários projetos usando o seguinte comando.

C:\> gradle -q tasks

Resultado:

------------------------------------------------------------
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>

Você pode usar o seguinte comando para exibir as informações de todas as tarefas.

C:\> gradle -q tasks --all

Resultado:

------------------------------------------------------------
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'.

Aqui estão algumas listas de comandos em uma descrição de tabela de diferentes opções.

Sr. Não. Comando Descrição
1 gradle –q help –task <nome da tarefa> Fornece as informações de uso (como caminho, tipo, descrição, grupo) sobre uma tarefa específica ou tarefas múltiplas.
2 dependências gradle –q Fornece uma lista de dependências do projeto selecionado.
3 gradle -q api: dependencies --configuration <nome da tarefa> Fornece a lista de dependências limitadas respectivas à configuração.
4 gradle –q buildEnvironment Fornece a lista de dependências de script de construção.
5 gradle –q dependencyInsight Fornece uma visão sobre uma dependência específica.
6 Propriedades do Gradle –q Fornece a lista de propriedades do projeto selecionado.