İngilizce dilinde oku

Aracılığıyla paylaş


Maven@4 - Maven v4 görevi

Apache Maven ile derleme, test etme ve dağıtma.

Syntax

YAML
# Maven v4
# Build, test, and deploy with Apache Maven.
- task: Maven@4
  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 Azure Pipelines. Default: true.
    testResultsFiles: '**/surefire-reports/TEST-*.xml' # string. Required when publishJUnitResults = true. Test results files. Default: **/surefire-reports/TEST-*.xml.
    #testRunTitle: # string. Optional. Use when publishJUnitResults = true. Test run title. 
    #allowBrokenSymlinks: true # boolean. Alias: allowBrokenSymbolicLinks. Optional. Use when publishJUnitResults = true. Allow broken symbolic links. Default: true.
  # 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.
    #codeCoverageRestoreOriginalPomXml: false # boolean. Alias: restoreOriginalPomXml. Optional. Use when codeCoverageTool != None. Restore original pom.xml after task execution. Default: false.
  # Advanced
    javaHomeOption: 'JDKVersion' # 'JDKVersion' | 'Path'. Alias: javaHomeSelection. Required. Set JAVA_HOME by. Default: JDKVersion.
    #jdkVersionOption: 'default' # 'default' | '1.17' | '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.
    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: false # boolean. Alias: mavenFeedAuthenticate. Authenticate with Artifacts feeds. Default: false.
    #effectivePomSkip: false # boolean. Alias: skipEffectivePom. Skip generating effective POM while authenticating with Artifacts feeds. Default: false.
  # Code Analysis
    #sonarQubeRunAnalysis: false # boolean. Alias: sqAnalysisEnabled. Run SonarQube or SonarCloud analysis. Default: false.
    #isJacocoCoverageReportXML: false # boolean. Optional. Use when sqAnalysisEnabled = true && codeCoverageTool = JaCoCo. Use XML Jacoco reports for SonarQube analysis. Default: false.
    #sqMavenPluginVersionChoice: 'latest' # 'latest' | 'pom'. Required when sqAnalysisEnabled = true. SonarQube scanner for Maven version. Default: latest.
    #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.
    #spotBugsRunAnalysis: false # boolean. Alias: spotBugsAnalysisEnabled. Run SpotBugs analysis. Default: false.
    #spotBugsVersion: '4.5.3.0' # string. Alias: spotBugsMavenPluginVersion. Optional. Use when spotBugsAnalysisEnabled = true. Version number. Default: 4.5.3.0.
    #spotBugsGoal: 'spotbugs' # 'spotbugs' | 'check'. Optional. Use when spotBugsAnalysisEnabled = true. The goal for the spotbugs plugin. Default: spotbugs.
    #failWhenBugsFound: true # boolean. Alias: spotBugsFailWhenBugsFound | sbFailWhenBugsFound. Optional. Use when spotBugsAnalysisEnabled = true && spotBugsGoal = check. Fail when bugs are found with spotbugs:check. Default: true.

Girişler

mavenPOMFile - Maven POM dosyası
string. Gereklidir. Varsayılan değer: pom.xml.

Depo kökünden Maven POM dosyasına göreli yolu belirtir. Daha fazla bilgi için bkz. POM'ye giriş .


goals - Hedef(ler)
string. Varsayılan değer: package.

(İsteğe bağlı) Kodunuzu derlemek package ve bir .war dosyası olarak paketlemek için olarak ayarlayın. Bu bağımsız değişkeni boş bırakırsanız derleme başarısız olur. Daha fazla bilgi için bkz. Maven derleme yaşam döngüsüne giriş .


options - Seçenekler
string.

(İsteğe bağlı) Kullanmak istediğiniz Maven komut satırı seçeneklerini belirtir.


publishJUnitResults - Azure Pipelines'da yayımlama
boolean. Varsayılan değer: true.

Maven derlemesi tarafından üretilen JUnit test sonuçlarını Azure Pipelines'da yayımlama seçeneğini belirtir. Her test sonuçları dosya eşleştirmesi Test Results Files , Azure Pipelines'da bir test çalıştırması olarak yayımlanır.


testResultsFiles - Test sonuçları dosyaları
string. olduğunda publishJUnitResults = truegereklidir. Varsayılan değer: **/surefire-reports/TEST-*.xml.

Yayımlayacak test sonuçları dosyalarının yolunu ve desenini belirtir.
Joker karakterler kullanılabilir.
Dosya eşleştirme desenleri hakkında daha fazla bilgi.
Örneğin, **/TEST-*.xml adı ile TEST-başlayan tüm XML dosyaları için. Kök yol belirtilmezse, dosyalar varsayılan çalışma dizininin altında eşleştirilir ve değeri değişkeninde $(System.DefaultWorkingDirectory)bulunur. Örneğin, değeri **/TEST-*.xml aslında dosyasından $(System.DefaultWorkingDirectory)/**/TEST-*.xmleşleşen dosyalara neden olur.


testRunTitle - Test çalıştırması başlığı
string. İsteğe bağlı. olduğunda publishJUnitResults = truekullanın.

Test çalıştırması için bir ad belirtir.


allowBrokenSymlinks - Bozuk sembolik bağlantılara izin ver
Giriş diğer adı: allowBrokenSymbolicLinks. boolean. İsteğe bağlı. olduğunda publishJUnitResults = truekullanın. Varsayılan değer: true.

olarak ayarlanırsa false, görev test sonuçlarını yayımlarken bozuk bir sembolik bağlantı bulduğunda derleme başarısız olur.


codeCoverageToolOption - Kod kapsamı aracı
Giriş diğer adı: codeCoverageTool. string. İzin verilen değerler: None, Cobertura, JaCoCo. Varsayılan değer: None.

Kod kapsamı aracını belirtir. Kod kapsamının etkinleştirilmesi, Maven çalıştırıldığında temiz hedefi Maven hedefleri listesine ekler.


codeCoverageClassFilter - Sınıf ekleme/dışlama filtreleri
Giriş diğer adı: classFilter. string. İsteğe bağlı. olduğunda codeCoverageTool != Nonekullanın.

Sınıfların kod kapsamını toplamasını içerecek veya hariç tutacak filtrelerin virgülle ayrılmış bir listesini belirtir. Örneğin, +:com.*,+:org.*,-:my.app*.*.


codeCoverageClassFilesDirectories - Sınıf dosyaları dizinleri
Giriş diğer adı: classFilesDirectories. string. İsteğe bağlı. olduğunda codeCoverageTool = JaCoCokullanın.

Bu alan, çok modüllü bir proje için gereklidir.
Maven POM dosyasından sınıf dosyalarını ve arşiv dosyalarını (JAR, WAR vb.) içeren dizinlere giden göreli yolların virgülle ayrılmış bir listesini belirtir. Bu dizinlerdeki sınıf dosyaları için kod kapsamı bildirilir. Örneğin, target/classes,target/testClasses.


codeCoverageSourceDirectories - Kaynak dosya dizinleri
Giriş diğer adı: srcDirectories. string. İsteğe bağlı. olduğunda codeCoverageTool = JaCoCokullanın.

Bu alan, çok modüllü bir proje için gereklidir.
Maven POM dosyasından kaynak kod dizinlerine giden göreli yolların virgülle ayrılmış bir listesini belirtir. Kod kapsamı raporları, kaynak kodu vurgulamak için bunları kullanır. Örneğin, src/java,src/Test.


codeCoverageFailIfEmpty - Kod kapsamı sonuçları eksik olduğunda başarısız olur
Giriş diğer adı: failIfCoverageEmpty. boolean. İsteğe bağlı. olduğunda codeCoverageTool != Nonekullanın. Varsayılan değer: false.

Kod kapsamı yayımlamak için herhangi bir sonuç üretmediyse derleme başarısız olur.


codeCoverageRestoreOriginalPomXml - Görev yürütmeden sonra özgün pom.xml geri yükleme
Giriş diğer adı: restoreOriginalPomXml. boolean. İsteğe bağlı. olduğunda codeCoverageTool != Nonekullanın. Varsayılan değer: false.

Kod kapsamı sonuçları üretmek için değiştirilir pom.xml . Özgün pom.xmlöğesini tutmanız gerekiyorsa bu seçeneği kullanın.


javaHomeOption - JAVA_HOME ayarlama ölçütü
Giriş diğer adı: javaHomeSelection. string. Gereklidir. İzin verilen değerler: JDKVersion (JDK Sürümü), Path. Varsayılan değer: JDKVersion.

Derlemeler sırasında keşfedilecek bir JDK sürümünü seçerek veya JDK yolunu el ile girerek ayarlar JAVA_HOME . Aracı makinesinde Java zaten yüklüyse JDK yüklü dizinin yolu olarak path ve jdkDirectory olarak ayarlayarak javaHomeOption bunu belirtebilirsiniz.


jdkVersionOption - JDK sürümü
Giriş diğer adı: jdkVersion. string. İsteğe bağlı. olduğunda javaHomeSelection = JDKVersionkullanın. İzin verilen değerler: default, 1.17 (JDK 17), 1.11 (JDK 11), 1.10 (JDK 10 (destek dışı)), 1.9 (JDK 9 (destek dışı)), 1.8 (JDK 8), 1.7 (JDK 7), 1.6 (JDK 6 (destek dışı)). Varsayılan değer: default.

Seçili JDK sürümünün yolunu bulmayı dener ve buna göre ayarlar JAVA_HOME .
Not: Microsoft tarafından barındırılmayan bir aracıda çalıştırılıyorsa ve istenen Java sürümü aracı makinesinde ayarlanan değişken tarafından JAVA_HOME belirtilen sürüm değilse, görev gerekli JDK'yi bulmak için değişkenine JAVA_HOME_{version}_{arch} (örneğin: JAVA_HOME_8_X64) güvenir. Bu değişkenin, JDK'nin bu parametre ve/veya tarafından jdkArchitectureistenebilecek herhangi bir sürümü ve mimarisi için şirket içinde barındırılan aracılarda ayarlandığından emin olun.


jdkDirectory - JDK yolu
Giriş diğer adı: jdkUserInputPath. string. olduğunda javaHomeSelection = Pathgereklidir.

JAVA_HOME Verilen yola ayarlar.


jdkArchitectureOption - JDK mimarisi
Giriş diğer adı: jdkArchitecture. string. İsteğe bağlı. olduğunda jdkVersion != defaultkullanın. İzin verilen değerler: x86, x64. Varsayılan değer: x64.

JDK mimarisini (x86, x64) sağlar.


mavenVersionOption - Maven sürümü
Giriş diğer adı: mavenVersionSelection. string. Gereklidir. İzin verilen değerler: Default, Path (Özel Yol). Varsayılan değer: Default.

Varsayılan Maven sürümünü veya belirtilen özel yoldaki sürümü belirtir.


mavenDirectory - Maven yolu
Giriş diğer adı: mavenPath. string. olduğunda mavenVersionSelection = Pathgereklidir.

Maven yüklemesinin özel yolunu sağlar (örneğin: /usr/share/maven).


mavenSetM2Home - M2_HOME değişkenini ayarlama
boolean. İsteğe bağlı. olduğunda mavenVersionSelection = Pathkullanın. Varsayılan değer: false.

Değişkenini M2_HOME özel bir Maven yükleme yoluna ayarlar.


mavenOptions - MAVEN_OPTS olarak ayarlama
Giriş diğer adı: mavenOpts. string. Varsayılan değer: -Xmx1024m.

JVM'yi MAVEN_OPTS başlatmak için komut satırı bağımsız değişkenleri göndermek için kullanılan ortam değişkenini ayarlar. bayrağı, -Xmx JVM için kullanılabilir bellek üst sınırını belirtir.


mavenAuthenticateFeed - Yapıt akışlarıyla kimlik doğrulaması
Giriş diğer adı: mavenFeedAuthenticate. boolean. Varsayılan değer: false.

Azure Artifacts akışlarıyla otomatik olarak kimlik doğrulaması yapar. Yapıt akışları kullanımda değilse, daha hızlı derlemeler için bu seçeneğin seçimini kaldırın.


effectivePomSkip - Yapıt akışlarıyla kimlik doğrulaması yaparken etkili POM oluşturma işlemini atlayın
Giriş diğer adı: skipEffectivePom. boolean. Varsayılan değer: false.

Yalnızca POM kullanarak Artifacts akışlarıyla kimlik doğrulaması yapar.


sonarQubeRunAnalysis - SonarQube veya SonarCloud analizini çalıştırma
Giriş diğer adı: sqAnalysisEnabled. boolean. Varsayılan değer: false.

Bu seçenek Maven görevinin 1. sürümünü kullanmaktan SonarQube ve SonarCloud market uzantılarını kullanmaya geçti.
Hedefler alanında hedefleri yürüttkten sonra SonarQube veya SonarCloud analizini çalıştırmak için bu seçeneği etkinleştirin. Önce yükleme veya paket hedefi çalıştırılmalıdır. Bu Maven görevinden önce, derleme işlem hattına uzantılardan birinden Çözümleme Yapılandırmasını Hazırlama görevi de eklemeniz gerekir.


isJacocoCoverageReportXML - SonarQube analizi için XML Jacoco raporlarını kullanma
boolean. İsteğe bağlı. olduğunda sqAnalysisEnabled = true && codeCoverageTool = JaCoCokullanın. Varsayılan değer: false.

SonarQube analizi için XML Jacoco raporlarını kullanır. Test raporları hakkında daha fazla bilgi edinin.


sqMavenPluginVersionChoice - Maven sürümü için SonarQube tarayıcısı
string. olduğunda sqAnalysisEnabled = truegereklidir. İzin verilen değerler: latest (En son sürümü kullanın), pom (pom.xml bildirilen sürümü kullanın). Varsayılan değer: latest.

Kullanılacak SonarQube Maven eklenti sürümünü belirtir. En son sürümü kullanabilir veya sürümünüzdeki sürümü kullanabilirsiniz pom.xml.


checkStyleRunAnalysis - Checkstyle'ı çalıştırma
Giriş diğer adı: checkstyleAnalysisEnabled. boolean. Varsayılan değer: false.

Checkstyle aracını varsayılan Güneş denetimleriyle çalıştırır. Dosyada pom.xml Checkstyle yapılandırması belirtilmezse, varsayılan Güneş denetimleri kullanılır. Sonuçlar derleme yapıtları olarak karşıya yüklenir.


pmdRunAnalysis - PMD çalıştırma
Giriş diğer adı: pmdAnalysisEnabled. boolean. Varsayılan değer: false.

Koddaki hataları aramak için PMD statik analiz aracını kullanır. Sonuçlar derleme yapıtları olarak karşıya yüklenir.


findBugsRunAnalysis - FindBugs'ı çalıştırma
Giriş diğer adı: findbugsAnalysisEnabled. boolean. Varsayılan değer: false.

Koddaki hataları aramak için FindBugs statik analiz aracını kullanır. Sonuçlar derleme yapıtları olarak karşıya yüklenir.


spotBugsRunAnalysis - SpotBugs analizini çalıştırma
Giriş diğer adı: spotBugsAnalysisEnabled. boolean. Varsayılan değer: false.

SpotBugs kod analizi eklentisini çalıştırmak için bu seçeneği etkinleştirin. SpotBugs Maven eklentisi hakkında daha fazla bilgi.


spotBugsVersion - Sürüm numarası
Giriş diğer adı: spotBugsMavenPluginVersion. string. İsteğe bağlı. olduğunda spotBugsAnalysisEnabled = truekullanın. Varsayılan değer: 4.5.3.0.

SpotBugs'un kullanılabilir sürümleri hakkında bilgi edinin.


spotBugsGoal - Spotbugs eklentisinin hedefi
string. İsteğe bağlı. olduğunda spotBugsAnalysisEnabled = truekullanın. İzin verilen değerler: spotbugs ("spotbugs" - Bulunan hatalarla ilgili bir rapor oluşturur), check ("check" - Hata algılanırsa işlem hattı başarısız olur). Varsayılan değer: spotbugs.

Eklentinin hedefini belirtir. SpotBugs hedefleri hakkında daha fazla bilgi edinin.


failWhenBugsFound - Spotbugs ile hatalar bulunduğunda başarısız olur:check
Giriş diğer adı: spotBugsFailWhenBugsFound | sbFailWhenBugsFound. boolean. İsteğe bağlı. olduğunda spotBugsAnalysisEnabled = true && spotBugsGoal = checkkullanın. Varsayılan değer: true.

Hedefi Denetle belirtilirse hatalar bulunduğunda başarısız olur. SpotBug parametresi ayrıntıları hakkında daha fazla bilgi edinin.


Görev denetim seçenekleri

Tüm görevlerde görev girişlerine ek olarak denetim seçenekleri vardır. Daha fazla bilgi için bkz . Denetim seçenekleri ve ortak görev özellikleri.

Çıkış değişkenleri

Yok.

Açıklamalar

SonarQube analizinin yapılandırması, Çözümleme Yapılandırmasını Hazırlama görevinde SonarQube veya SonarCloud uzantılarına taşındı.

Önemli

içinde MAVEN_OPTSseçeneğini kullanırken -q etkili bir pom doğru oluşturulmaz ve Azure Artifacts akışlarının kimliği doğrulanamaz.

Önemli

Kullanmak istediğiniz JDK sürümü aracınızda zaten yüklüyse olarak ayarlayın javaHomeOptionpath ve JDK sürümünün yolunu ayarlayın jdkDirectory . Bu seçenekler, Maven görevi için gereken ortam değişkenini ayarlar JAVA_HOME_11_X64 . Java Aracı yükleyici görevini kullanıyorsanız bu ortam değişkeni otomatik olarak ayarlanır.

SSS

Çok modüllü bir projem var ama derlemem başarısız oluyor. Neyi denetlemeliyim?

ve #codeCoverageSourceDirectories öğesini bir görev girişi olarak belirttiğinizden #codeCoverageClassFilesDirectories emin olun. Bu iki parametre tek bir modül projesi için isteğe bağlıdır ancak çok modüllü projeler için gereklidir.

Örnekler

Gereksinimler

Gereksinim Açıklama
İşlem hattı türleri YAML, Klasik derleme, Klasik sürüm
Üzerinde çalışır Agent, DeploymentGroup
Talep Şirket içi barındırılan aracılar, bu görevi kullanan işleri çalıştırmak için aşağıdaki taleplerle eşleşen özelliklere sahip olmalıdır: maven
Özellikler Bu görev, işteki sonraki görevler için hiçbir talebi karşılamaz.
Komut kısıtlamaları Herhangi biri
Ayarlanabilir değişkenler Herhangi biri
Aracı sürümü 1.89.0 veya üzeri
Görev kategorisi Yapı

Ayrıca bkz.