Maven@1 — zadanie maven w wersji 1
To zadanie służy do kompilowania za pomocą narzędzia Apache Maven.
Składnia
# Maven v1
# Build with Apache Maven.
- task: Maven@1
inputs:
mavenPOMFile: 'pom.xml' # string. Required. Maven POM file. Default: pom.xml.
#goals: 'package' # string. Goal(s). Default: package.
#options: # string. Options.
# JUnit Test Results
#publishJUnitResults: true # boolean. Publish to TFS/Team Services. 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.
#codeCoverageClassFilter: # string. Alias: classFilter. Optional. Use when codeCoverageTool != None. Class Inclusion/Exclusion Filters.
#codeCoverageClassFilesDirectories: # string. Alias: classFilesDirectories. Optional. Use when codeCoverageTool = JaCoCo. Class Files Directories.
#codeCoverageSourceDirectories: # string. Alias: srcDirectories. Optional. Use when codeCoverageTool = JaCoCo. Source Files Directories.
#codeCoverageFailIfEmpty: false # boolean. Alias: failIfCoverageEmpty. Optional. Use when codeCoverageTool != None. Fail When Code Coverage Results Are Missing. Default: false.
# Advanced
javaHomeOption: 'JDKVersion' # 'JDKVersion' | 'Path'. Alias: javaHomeSelection. Required. Set JAVA_HOME by. Default: JDKVersion.
#jdkVersionOption: 'default' # 'default' | '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.
mavenVersionOption: 'Default' # 'Default' | 'Path'. Alias: mavenVersionSelection. Required. Maven Version. Default: Default.
#mavenDirectory: # string. Alias: mavenPath. Required when mavenVersionSelection = Path. Maven Path.
#mavenSetM2Home: false # boolean. Optional. Use when mavenVersionSelection = Path. Set M2_HOME variable. Default: false.
#mavenOptions: '-Xmx1024m' # string. Alias: mavenOpts. Set MAVEN_OPTS to. Default: -Xmx1024m.
#mavenAuthenticateFeed: true # boolean. Alias: mavenFeedAuthenticate. Authenticate built-in Maven feeds. Default: true.
# Code Analysis
#sonarQubeRunAnalysis: false # boolean. Alias: sqAnalysisEnabled. Run SonarQube Analysis. Default: false.
#sonarQubeServiceEndpoint: # string. Alias: sqConnectedServiceName. Required when sqAnalysisEnabled = true. SonarQube Endpoint.
#sonarQubeProjectName: # string. Alias: sqProjectName. Optional. Use when sqAnalysisEnabled = true. SonarQube Project Name.
#sonarQubeProjectKey: # string. Alias: sqProjectKey. Optional. Use when sqAnalysisEnabled = true. SonarQube Project Key.
#sonarQubeProjectVersion: # string. Alias: sqProjectVersion. Optional. Use when sqAnalysisEnabled = true. SonarQube Project Version.
#sonarQubeSpecifyDB: false # boolean. Alias: sqDbDetailsRequired. Optional. Use when sqAnalysisEnabled = true. The SonarQube server version is lower than 5.2. Default: false.
#sonarQubeDBUrl: # string. Alias: sqDbUrl. Optional. Use when sqDbDetailsRequired = true. Db Connection String.
#sonarQubeDBUsername: # string. Alias: sqDbUsername. Optional. Use when sqDbDetailsRequired = true. Db Username.
#sonarQubeDBPassword: # string. Alias: sqDbPassword. Optional. Use when sqDbDetailsRequired = true. Db User Password.
#sonarQubeIncludeFullReport: true # boolean. Alias: sqAnalysisIncludeFullReport. Optional. Use when sqAnalysisEnabled = true. Include full analysis report in the build summary (SQ 5.3+). Default: true.
#sonarQubeFailWhenQualityGateFails: # boolean. Alias: sqAnalysisBreakBuildIfQualityGateFailed. Optional. Use when sqAnalysisEnabled = true. Fail the build on quality gate failure (SQ 5.3+).
#checkStyleRunAnalysis: false # boolean. Alias: checkstyleAnalysisEnabled. Run Checkstyle. Default: false.
#pmdRunAnalysis: false # boolean. Alias: pmdAnalysisEnabled. Run PMD. Default: false.
#findBugsRunAnalysis: false # boolean. Alias: findbugsAnalysisEnabled. Run FindBugs. Default: false.
Dane wejściowe
mavenPOMFile
- Plik POM narzędzia Maven
string
. Wymagane. Wartość domyślna: pom.xml
.
Określa ścieżkę względną z katalogu głównego repozytorium do pliku POM narzędzia Maven.
goals
- Bramki
string
. Wartość domyślna: package
.
options
- Opcje
string
.
publishJUnitResults
- Publikowanie w usługach TFS/Team Services
boolean
. Wartość domyślna: true
.
Określa opcję publikowania wyników testów narzędzia JUnit utworzonych przez kompilację narzędzia Maven w usługach TFS/Team Services. Każde dopasowanie Test Results Files
pliku wyników testów zostanie opublikowane jako przebieg testu w programie TFS/Team Services.
testResultsFiles
- Pliki wyników testów
string
. Wymagane, gdy publishJUnitResults = true
. Wartość domyślna: **/TEST-*.xml
.
Określa ścieżkę i wzorzec plików wyników testów do opublikowania. Na przykład **/TEST-*.xml
dla wszystkich plików XML o nazwie rozpoczynającej się od TEST-
. Jeśli nie określono ścieżki głównej, pliki są dopasowywane poniżej domyślnego katalogu roboczego, którego wartość jest dostępna w zmiennej $(System.DefaultWorkingDirectory)
. Na przykład wartość **/TEST-*.xml
elementu w rzeczywistości spowoduje dopasowanie plików z $(System.DefaultWorkingDirectory)/**/TEST-*.xml
klasy .
testRunTitle
- Tytuł przebiegu testu
string
. Opcjonalny. Użyj polecenia , gdy publishJUnitResults = true
.
Określa nazwę przebiegu testu.
codeCoverageToolOption
- Narzędzie pokrycia kodu
Alias wejściowy: codeCoverageTool
. string
. Dozwolone wartości: None
, Cobertura
, JaCoCo
. Wartość domyślna: None
.
Określa narzędzie pokrycia kodu.
codeCoverageClassFilter
- Filtry dołączania/wykluczania klas
Alias wejściowy: classFilter
. string
. Opcjonalny. Użyj polecenia , gdy codeCoverageTool != None
.
Określa rozdzieloną przecinkami listę filtrów do uwzględnienia lub wykluczenia klas ze zbierania pokrycia kodu. Na przykład +:com.*,+:org.*,-:my.app*.*
.
codeCoverageClassFilesDirectories
- Katalogi plików klas
Alias wejściowy: classFilesDirectories
. string
. Opcjonalny. Użyj polecenia , gdy codeCoverageTool = JaCoCo
.
To pole jest wymagane dla projektu z wieloma modułami.
Określa rozdzielaną przecinkami listę ścieżek względnych z pliku POM narzędzia Maven do katalogów zawierających pliki klas i pliki archiwum (JAR, WAR itp.). Pokrycie kodu jest zgłaszane dla plików klas w tych katalogach. Na przykład target/classes,target/testClasses
.
codeCoverageSourceDirectories
- Katalogi plików źródłowych
Alias wejściowy: srcDirectories
. string
. Opcjonalny. Użyj polecenia , gdy codeCoverageTool = JaCoCo
.
To pole jest wymagane dla projektu z wieloma modułami.
Określa rozdzielaną przecinkami listę ścieżek względnych z pliku POM narzędzia Maven do katalogów kodu źródłowego. Raporty pokrycia kodu będą używać ich do wyróżniania kodu źródłowego. Na przykład src/java,src/Test
.
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.
javaHomeOption
- Ustaw JAVA_HOME przez
Alias wejściowy: javaHomeSelection
. string
. Wymagane. Dozwolone wartości: JDKVersion
(wersja zestawu JDK), Path
. Wartość domyślna: JDKVersion
.
Zestawy JAVA_HOME
przez wybranie wersji zestawu JDK, która zostanie odnaleziona podczas kompilacji lub przez ręczne wprowadzenie ścieżki zestawu JDK.
jdkVersionOption
- Wersja zestawu JDK
Alias wejściowy: jdkVersion
. string
. Opcjonalny. Użyj polecenia , gdy javaHomeSelection = JDKVersion
. Dozwolone wartości: default
, 1.9
(JDK 9), 1.8
(JDK 8), 1.7
(JDK 7), 1.6
(JDK 6). 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ę (x86
, x64
) zestawu JDK.
mavenVersionOption
- Wersja narzędzia Maven
Alias wejściowy: mavenVersionSelection
. string
. Wymagane. Dozwolone wartości: Default
, Path
(Ścieżka niestandardowa). Wartość domyślna: Default
.
Używa domyślnej wersji narzędzia Maven lub wersji w określonej ścieżce niestandardowej.
mavenDirectory
- Ścieżka narzędzia Maven
Alias wejściowy: mavenPath
. string
. Wymagane, gdy mavenVersionSelection = Path
.
Dostarcza ścieżkę niestandardową do instalacji narzędzia Maven (na przykład: /usr/share/maven
).
mavenSetM2Home
- Ustawianie zmiennej M2_HOME
boolean
. Opcjonalny. Użyj polecenia , gdy mavenVersionSelection = Path
. Wartość domyślna: false
.
Ustawia zmienną M2_HOME
na niestandardową ścieżkę instalacji programu Maven.
mavenOptions
- Ustaw MAVEN_OPTS na
Alias wejściowy: mavenOpts
. string
. Wartość domyślna: -Xmx1024m
.
Ustawia zmienną MAVEN_OPTS
środowiskową, 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.
mavenAuthenticateFeed
- Uwierzytelnianie wbudowanych źródeł danych Maven
Alias wejściowy: mavenFeedAuthenticate
. boolean
. Wartość domyślna: true
.
Automatycznie uwierzytelnia się przy użyciu kanałów informacyjnych usługi Azure Artifacts. Jeśli kanały informacyjne artefaktów nie są używane, usuń zaznaczenie tej opcji, aby przyspieszyć kompilacje.
sonarQubeRunAnalysis
- Uruchamianie analizy SonarQube
Alias wejściowy: sqAnalysisEnabled
. boolean
. Wartość domyślna: false
.
Uruchamia analizę SonarQube po wykonaniu bieżących celów. install
lub package
należy najpierw wykonać cele.
sonarQubeServiceEndpoint
- Punkt końcowy SonarQube
Alias wejściowy: sqConnectedServiceName
. string
. Wymagane, gdy sqAnalysisEnabled = true
.
Określa ogólny punkt końcowy serwera SonarQube.
sonarQubeProjectName
- Nazwa projektu SonarQube
Alias wejściowy: sqProjectName
. string
. Opcjonalny. Użyj polecenia , gdy sqAnalysisEnabled = true
.
Określa nazwę projektu SonarQube, na przykład sonar.projectName
.
sonarQubeProjectKey
- Klucz projektu SonarQube
Alias wejściowy: sqProjectKey
. string
. Opcjonalny. Użyj polecenia , gdy sqAnalysisEnabled = true
.
Określa unikatowy klucz projektu SonarQube, na przykład sonar.projectKey
.
sonarQubeProjectVersion
- Wersja projektu SonarQube
Alias wejściowy: sqProjectVersion
. string
. Opcjonalny. Użyj polecenia , gdy sqAnalysisEnabled = true
.
Określa wersję projektu SonarQube, na przykład sonar.projectVersion
.
sonarQubeSpecifyDB
- Wersja serwera SonarQube jest niższa niż 5.2
Alias wejściowy: sqDbDetailsRequired
. boolean
. Opcjonalny. Użyj polecenia , gdy sqAnalysisEnabled = true
. Wartość domyślna: false
.
Jeśli używasz serwera SonarQube 5.1 lub nowszego, musisz określić szczegóły połączenia z bazą danych.
sonarQubeDBUrl
- Parametry połączenia bazy danych
Alias wejściowy: sqDbUrl
. string
. Opcjonalny. Użyj polecenia , gdy sqDbDetailsRequired = true
.
Służy tylko dla serwera SonarQube w wersji 5.1 i niższej.
Określa ustawienie połączenia z bazą danych (na przykład sonar.jdbc.url
lub jdbc:jtds:sqlserver://localhost/sonar;SelectMethod=Cursor
).
sonarQubeDBUsername
- Nazwa użytkownika bazy danych
Alias wejściowy: sqDbUsername
. string
. Opcjonalny. Użyj polecenia , gdy sqDbDetailsRequired = true
.
Służy tylko dla serwera SonarQube w wersji 5.1 i niższej.
Określa nazwę użytkownika bazy danych (na przykład sonar.jdbc.username
).
sonarQubeDBPassword
- Hasło użytkownika bazy danych
Alias wejściowy: sqDbPassword
. string
. Opcjonalny. Użyj polecenia , gdy sqDbDetailsRequired = true
.
Służy tylko dla serwera SonarQube w wersji 5.1 i niższej.
Określa hasło użytkownika bazy danych (na przykład sonar.jdbc.password
).
sonarQubeIncludeFullReport
- Uwzględnij pełny raport analizy w podsumowaniu kompilacji (SQ 5.3+)
Alias wejściowy: sqAnalysisIncludeFullReport
. boolean
. Opcjonalny. Użyj polecenia , gdy sqAnalysisEnabled = true
. Wartość domyślna: true
.
Ta opcja opóźni kompilację do momentu ukończenia analizy SonarQube.
sonarQubeFailWhenQualityGateFails
- Niepowodzenie kompilacji w przypadku awarii bramy jakości (SQ 5.3+)
Alias wejściowy: sqAnalysisBreakBuildIfQualityGateFailed
. boolean
. Opcjonalny. Użyj polecenia , gdy sqAnalysisEnabled = true
.
Ta opcja jest dostępna tylko w przypadku korzystania z serwera SonarQube w wersji 5.3 lub nowszej. Wprowadza opóźnienia, ponieważ kompilacja musi czekać, aż sonarQube ukończy analizę. Więcej informacji na temat bram jakości SonarQube.
checkStyleRunAnalysis
- Uruchamianie stylu kontrolnego
Alias wejściowy: checkstyleAnalysisEnabled
. boolean
. Wartość domyślna: false
.
Uruchamia narzędzie Checkstyle z domyślnym sprawdzaniem Sun. Wyniki są przekazywane jako artefakty kompilacji.
pmdRunAnalysis
- Uruchamianie narzędzia PMD
Alias wejściowy: pmdAnalysisEnabled
. boolean
. Wartość domyślna: false
.
Używa narzędzia analizy statycznej PMD do wyszukiwania usterek w kodzie. 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.
Opcje sterowania zadaniami
Wszystkie zadania mają opcje sterowania oprócz ich danych wejściowych zadań. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.
Zmienne wyjściowe
Brak.
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, kompilacja klasyczna, wersja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Agenci hostowani samodzielnie muszą mieć możliwości zgodne z następującymi wymaganiami dotyczącymi uruchamiania zadań korzystających z tego zadania: maven |
Możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
Ograniczenia poleceń | Dowolne |
Zmienne w formie tabeli settable | Dowolne |
Wersja agenta | 1.89.0 lub nowsza |
Kategoria zadania | Kompilacja |