Gradle@3 — zadanie Gradle w wersji 3

To zadanie służy do kompilowania przy użyciu skryptu otoki Gradle.

Składnia

# Gradle v3
# Build using a Gradle wrapper script.
- task: Gradle@3
  inputs:
    gradleWrapperFile: 'gradlew' # string. Alias: wrapperScript. Required. Gradle wrapper. Default: gradlew.
    #workingDirectory: # string. Alias: cwd. Working directory. 
    #options: # string. Options. 
    tasks: 'build' # string. Required. Tasks. Default: build.
  # JUnit Test Results
    #publishJUnitResults: true # boolean. Publish to Azure Pipelines. Default: true.
    testResultsFiles: '**/TEST-*.xml' # string. Required when publishJUnitResults = true. Test results files. Default: **/TEST-*.xml.
    #testRunTitle: # string. Optional. Use when publishJUnitResults = true. Test run title. 
  # Code Coverage
    #codeCoverageToolOption: 'None' # 'None' | 'Cobertura' | 'JaCoCo'. Alias: codeCoverageTool. Code coverage tool. Default: None.
    codeCoverageClassFilesDirectories: 'build/classes/main/' # string. Alias: classFilesDirectories. Required when codeCoverageTool != None. Class files directories. Default: build/classes/main/.
    #codeCoverageClassFilter: # string. Alias: classFilter. Optional. Use when codeCoverageTool != None. Class inclusion/exclusion filters. 
    #codeCoverageFailIfEmpty: false # boolean. Alias: failIfCoverageEmpty. Optional. Use when codeCoverageTool != None. Fail when code coverage results are missing. Default: false.
    #codeCoverageGradle5xOrHigher: true # boolean. Alias: gradle5xOrHigher. Optional. Use when codeCoverageTool = JaCoCo. Gradle version >= 5.x. Default: true.
  # Advanced
    javaHomeOption: 'JDKVersion' # 'JDKVersion' | 'Path'. Alias: javaHomeSelection. Required. Set JAVA_HOME by. Default: JDKVersion.
    #jdkVersionOption: 'default' # 'default' | '1.11' | '1.10' | '1.9' | '1.8' | '1.7' | '1.6'. Alias: jdkVersion. Optional. Use when javaHomeSelection = JDKVersion. JDK version. Default: default.
    #jdkDirectory: # string. Alias: jdkUserInputPath. Required when javaHomeSelection = Path. JDK path. 
    #jdkArchitectureOption: 'x64' # 'x86' | 'x64'. Alias: jdkArchitecture. Optional. Use when jdkVersion != default. JDK architecture. Default: x64.
    #gradleOptions: '-Xmx1024m' # string. Alias: gradleOpts. Set GRADLE_OPTS. Default: -Xmx1024m.
  # Code Analysis
    #sonarQubeRunAnalysis: false # boolean. Alias: sqAnalysisEnabled. Run SonarQube or SonarCloud Analysis. Default: false.
    #sqGradlePluginVersionChoice: 'specify' # 'specify' | 'build'. Required when sqAnalysisEnabled = true. SonarQube scanner for Gradle version. Default: specify.
    #sonarQubeGradlePluginVersion: '2.6.1' # string. Alias: sqGradlePluginVersion. Required when sqAnalysisEnabled = true && sqGradlePluginVersionChoice = specify. SonarQube scanner for Gradle plugin version. Default: 2.6.1.
    #checkStyleRunAnalysis: false # boolean. Alias: checkstyleAnalysisEnabled. Run Checkstyle. Default: false.
    #findBugsRunAnalysis: false # boolean. Alias: findbugsAnalysisEnabled. Run FindBugs. Default: false.
    #pmdRunAnalysis: false # boolean. Alias: pmdAnalysisEnabled. Run PMD. Default: false.
    #spotBugsAnalysis: false # boolean. Alias: spotBugsAnalysisEnabled. Run SpotBugs. Default: false.
    #spotBugsGradlePluginVersionChoice: 'specify' # 'specify' | 'build'. Required when spotBugsAnalysisEnabled = true. Spotbugs plugin version. Default: specify.
    #spotbugsGradlePluginVersion: '4.7.0' # string. Required when spotBugsAnalysisEnabled = true && spotBugsGradlePluginVersionChoice = specify. Version number. Default: 4.7.0.

Dane wejściowe

gradleWrapperFile - Otoka narzędzia Gradle
Alias wejściowy: wrapperScript. string. Wymagane. Wartość domyślna: gradlew.

Określa lokalizację gradlew otoki w repozytorium, który będzie używany do kompilacji. Agenci w systemie Windows (w tym agenci hostowani przez firmę Microsoft) muszą używać gradlew.bat otoki. Agenci w systemie Linux lub macOS mogą używać skryptu powłoki gradlew . Dowiedz się więcej o otoce Gradle.


workingDirectory - Katalog roboczy
Alias wejściowy: cwd. string.

Określa katalog roboczy do uruchomienia kompilacji narzędzia Gradle. Zadanie używa katalogu głównego repozytorium, jeśli nie określono katalogu roboczego.


options - Opcje
string.

Określa opcje wiersza polecenia, które zostaną przekazane do otoki Gradle. Aby uzyskać więcej informacji, zobacz wiersz polecenia narzędzia Gradle .


tasks - Zadania
string. Wymagane. Wartość domyślna: build.

Zadania do wykonania przez program Gradle. Lista nazw zadań powinna być oddzielona spacjami i może zostać pobrana z gradlew tasks poziomu wiersza polecenia.

Aby uzyskać więcej informacji, zobacz Podstawy skryptu kompilacji narzędzia Gradle .


publishJUnitResults - Publikowanie w usłudze Azure Pipelines
boolean. Wartość domyślna: true.

Publikuje wyniki testów narzędzia JUnit wygenerowane przez kompilację Gradle w usłudze Azure Pipelines. Zadanie publikuje każdy plik wyników testu pasujący Test Results Files jako przebieg testu w usłudze Azure Pipelines.


testResultsFiles - Pliki wyników testów
string. Wymagane, gdy publishJUnitResults = true. Wartość domyślna: **/TEST-*.xml.

Ścieżka pliku do wyników testu. Symbole wieloznaczne mogą być używane. Na przykład **/TEST-*.xml dla wszystkich plików XML, których nazwa zaczyna się od TEST-.


testRunTitle - Tytuł przebiegu testu
string. Opcjonalny. Użyj polecenia , gdy publishJUnitResults = true.

Zawiera nazwę wyników przypadku testowego JUnit dla tej kompilacji.


codeCoverageToolOption - Narzędzie pokrycia kodu
Alias wejściowy: codeCoverageTool. string. Dozwolone wartości: None, , JaCoCoCobertura. Wartość domyślna: None.

Określa narzędzie pokrycia kodu, aby określić kod, który jest objęty przypadkami testowymi kompilacji.


codeCoverageClassFilesDirectories - Katalogi plików klas
Alias wejściowy: classFilesDirectories. string. Wymagane, gdy codeCoverageTool != None. Wartość domyślna: build/classes/main/.

Rozdzielona przecinkami lista katalogów zawierających pliki klas i pliki archiwum (jar, .war i inne). Pokrycie kodu jest zgłaszane dla plików klas w tych katalogach. Zwykle klasy zadań wyszukuje w obszarze build/classes/java/main (dla wersji Gradle 4 lub nowszej), który jest domyślnym katalogem klas kompilacji Gradle.


codeCoverageClassFilter - Filtry dołączania/wykluczania klas
Alias wejściowy: classFilter. string. Opcjonalny. Użyj polecenia , gdy codeCoverageTool != None.

Rozdzielona przecinkami lista filtrów do uwzględnienia lub wykluczenia klas ze zbierania pokrycia kodu. Na przykład: +:com.*,+:org.*,-:my.app*.*.


codeCoverageFailIfEmpty - Niepowodzenie, gdy brakuje wyników pokrycia kodu
Alias wejściowy: failIfCoverageEmpty. boolean. Opcjonalny. Użyj polecenia , gdy codeCoverageTool != None. Wartość domyślna: false.

Kompilacja kończy się niepowodzeniem, jeśli pokrycie kodu nie wygenerowało żadnych wyników do opublikowania.


codeCoverageGradle5xOrHigher - Wersja narzędzia Gradle >= 5.x
Alias wejściowy: gradle5xOrHigher. boolean. Opcjonalny. Użyj polecenia , gdy codeCoverageTool = JaCoCo. Wartość domyślna: true.

Ustaw wartość "true", jeśli wersja narzędzia gradle wynosi >= 5.x.


javaHomeOption - Ustaw JAVA_HOME według
Alias wejściowy: javaHomeSelection. string. Wymagane. Dozwolone wartości: JDKVersion (wersja zestawu JDK), Path. Wartość domyślna: JDKVersion.

Ustawia JAVA_HOME, wybierając wersję zestawu JDK odnajdyną podczas kompilacji lub ręcznie wprowadzając ścieżkę zestawu JDK.


jdkVersionOption - Wersja zestawu JDK
Alias wejściowy: jdkVersion. string. Opcjonalny. Użyj polecenia , gdy javaHomeSelection = JDKVersion. Dozwolone wartości: default, 1.11 (JDK 11), 1.10 (JDK 10 (brak obsługi)), (JDK 9 (brak obsługi) 1.8 ), 1.9 (JDK 8), (JDK 7), 1.71.6 (JDK 6 (brak obsługi)). Wartość domyślna: default.

Próbuje odnaleźć ścieżkę do wybranej wersji zestawu JDK i odpowiednio ustawić JAVA_HOME.


jdkDirectory - Ścieżka zestawu JDK
Alias wejściowy: jdkUserInputPath. string. Wymagane, gdy javaHomeSelection = Path.

Ustawia JAVA_HOME na daną ścieżkę.


jdkArchitectureOption - Architektura zestawu JDK
Alias wejściowy: jdkArchitecture. string. Opcjonalny. Użyj polecenia , gdy jdkVersion != default. Dozwolone wartości: x86, x64. Wartość domyślna: x64.

Dostarcza architekturę zestawu JDK (x86 lub x64).


gradleOptions - Ustawianie GRADLE_OPTS
Alias wejściowy: gradleOpts. string. Wartość domyślna: -Xmx1024m.

Ustawia zmienną środowiskową GRADLE_OPTS, która służy do wysyłania argumentów wiersza polecenia w celu uruchomienia maszyny wirtualnej JVM. Flaga xmx określa maksymalną ilość pamięci dostępnej dla maszyny wirtualnej JVM.


sonarQubeRunAnalysis - Uruchamianie analizy SonarQube lub SonarCloud
Alias wejściowy: sqAnalysisEnabled. boolean. Wartość domyślna: false.

Ta opcja została zmieniona z wersji 1 zadania narzędzia Gradle w celu używania rozszerzeń witryny Marketplace SonarQube i SonarCloud . Włącz tę opcję, aby uruchomić analizę SonarQube lub SonarCloud po wykonaniu zadań w polu Zadania . Przed tym zadaniem narzędzia Gradle należy również dodać zadanie Przygotuj konfigurację analizy z jednego z rozszerzeń do potoku kompilacji.


sqGradlePluginVersionChoice - Skaner SonarQube dla wersji narzędzia Gradle
string. Wymagane, gdy sqAnalysisEnabled = true. Dozwolone wartości: specify (określ numer wersji) build (Użyj wtyczki zastosowanej w pliku build.gradle). Wartość domyślna: specify.

Określa wersję wtyczki SonarQube Gradle do użycia. Zadeklaruj wersję w pliku konfiguracji narzędzia Gradle lub określ wersję za pomocą tego ciągu.


sonarQubeGradlePluginVersion - Skaner SonarQube dla wersji wtyczki Gradle
Alias wejściowy: sqGradlePluginVersion. string. Wymagane, gdy sqAnalysisEnabled = true && sqGradlePluginVersionChoice = specify. Wartość domyślna: 2.6.1.

Zawiera numer wersji wtyczki SonarQube Gradle.


checkStyleRunAnalysis - Uruchamianie stylu kontrolnego
Alias wejściowy: checkstyleAnalysisEnabled. boolean. Wartość domyślna: false.

Uruchamia narzędzie Checkstyle z domyślnym sprawdzaniem wartości Sun. Wyniki są przekazywane jako artefakty kompilacji.


findBugsRunAnalysis - Uruchamianie funkcji FindBugs
Alias wejściowy: findbugsAnalysisEnabled. boolean. Wartość domyślna: false.

Używa narzędzia do analizy statycznej FindBugs, aby wyszukać usterki w kodzie. Wyniki są przekazywane jako artefakty kompilacji. W wersji Gradle 6.0 ta wtyczka została usunięta. Zamiast tego użyj wtyczki SpotBugs.


pmdRunAnalysis - Uruchamianie narzędzia PMD
Alias wejściowy: pmdAnalysisEnabled. boolean. Wartość domyślna: false.

Używa narzędzia do analizy statycznej PMD w języku Java, aby wyszukać usterki w kodzie. Wyniki są przekazywane jako artefakty kompilacji.


spotBugsAnalysis - Uruchamianie usługi SpotBugs
Alias wejściowy: spotBugsAnalysisEnabled. boolean. Wartość domyślna: false.

Uruchamia polecenie spotBugs , gdy true. Ta wtyczka działa z programem Gradle w wersji 5.6 lub nowszej. Dowiedz się więcej o korzystaniu z wtyczki SpotBugs Gradle. Wtyczka może działać w nieoczekiwany sposób lub w ogóle nie działa z wcześniejszą wersją narzędzia Gradle.


spotBugsGradlePluginVersionChoice - Wersja wtyczki Spotbugs
string. Wymagane, gdy spotBugsAnalysisEnabled = true. Dozwolone wartości: specify (określ numer wersji) build (Użyj wtyczki zastosowanej w pliku build.gradle). Wartość domyślna: specify.

Określa wersję wtyczki SpotBugs Gradle do użycia. Wersję można zadeklarować w pliku konfiguracji narzędzia Gradle lub wersję można określić w tym ciągu.


spotbugsGradlePluginVersion - Numer wersji
string. Wymagane, gdy spotBugsAnalysisEnabled = true && spotBugsGradlePluginVersionChoice = specify. Wartość domyślna: 4.7.0.

Zawiera numer wersji wtyczki SpotBugs Gradle.


Opcje sterowania zadaniami

Wszystkie zadania mają opcje sterowania oprócz danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.

Zmienne wyjściowe

Brak.

Uwagi

Konfiguracja analizy SonarQube została przeniesiona do rozszerzeń SonarQube lub SonarCloud w zadaniu Prepare Analysis Configuration.

To zadanie służy do kompilowania przy użyciu skryptu otoki Gradle.

Jak mogę wygenerować otokę z mojego projektu narzędzia Gradle?

Otoka narzędzia Gradle umożliwia agentowi kompilacji pobranie i skonfigurowanie dokładnego środowiska Gradle zaewidencjonowane w repozytorium bez konieczności konfigurowania oprogramowania na samym agencie kompilacji innym niż maszyna wirtualna JVM.

  1. Utwórz otokę narzędzia Gradle, wydając następujące polecenie z katalogu głównego projektu, w którym znajduje się plik build.gradle:

    jamal@fabrikam> gradle wrapper

  2. Przekaż otokę narzędzia Gradle do repozytorium zdalnego.

    Istnieje artefakt binarny generowany przez otokę gradle (znajdującą się w lokalizacji gradle/wrapper/gradle-wrapper.jar). Ten plik binarny jest mały i nie wymaga aktualizacji. Jeśli musisz zmienić konfigurację narzędzia Gradle uruchomioną na agencie kompilacji, zaktualizuj element gradle-wrapper.properties.

    Repozytorium powinno wyglądać mniej więcej tak:

|-- gradle/
    `-- wrapper/
        `-- gradle-wrapper.jar
        `-- gradle-wrapper.properties
|-- src/
|-- .gitignore
|-- build.gradle
|-- gradlew
|-- gradlew.bat

Jak mogę naprawić limity czasu podczas pobierania zależności?

Aby naprawić błędy, takie jak Read timed out podczas pobierania zależności, użytkownicy programu Gradle w wersji 4.3 lub nowszej mogą zmienić limit czasu, dodając -Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000 element do Optionselementu . Zwiększa to limit czasu z 10 sekund do 1 minuty.

Przykłady

Tworzenie aplikacji Java przy użyciu narzędzia Gradle

Wymagania

Wymaganie Opis
Typy potoków YAML, klasyczna kompilacja
Działa w Agent, DeploymentGroup
Wymagania Brak
Możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
Ograniczenia poleceń Dowolne
Zmienne ustawialne Dowolne
Wersja agenta 1.91.0 lub nowszy
Kategoria zadania Kompilacja