Maven görevi

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

Java kodunuzu oluşturmak için bu görevi kullanın.

Talep

Derleme aracısı aşağıdaki özelliğe sahip olmalı:

  • Maven

YAML kod parçacığı

# Maven
# Build, test, and deploy with Apache Maven
- task: Maven@3
  inputs:
    #mavenPomFile: 'pom.xml' 
    #goals: 'package' # Optional
    #options: # Optional
    #publishJUnitResults: true 
    #testResultsFiles: '**/surefire-reports/TEST-*.xml' # Required when publishJUnitResults == True
    #testRunTitle: # Optional
    #allowBrokenSymlink: false # Optional. Has effect only when publishJUnitResults == True
    #codeCoverageToolOption: 'None' # Optional. Options: none, cobertura, jaCoCo. Enabling code coverage inserts the `clean` goal into the Maven goals list when Maven runs.
    #codeCoverageClassFilter: # Optional. Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*
    #codeCoverageClassFilesDirectories: # Optional
    #codeCoverageSourceDirectories: # Optional
    #codeCoverageFailIfEmpty: false # Optional
    #javaHomeOption: 'JDKVersion' # Options: jDKVersion, path
    #jdkVersionOption: 'default' # Optional. Options: default, 1.14, 1.13, 1.12, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6
    #jdkDirectory: # Required when javaHomeOption == Path
    #jdkArchitectureOption: 'x64' # Optional. Options: x86, x64
    #mavenVersionOption: 'Default' # Options: default, path
    #mavenDirectory: # Required when mavenVersionOption == Path
    #mavenSetM2Home: false # Required when mavenVersionOption == Path
    #mavenOptions: '-Xmx1024m' # Optional
    #mavenAuthenticateFeed: false 
    #effectivePomSkip: false 
    #sonarQubeRunAnalysis: false 
    #sqMavenPluginVersionChoice: 'latest' # Required when sonarQubeRunAnalysis == True# Options: latest, pom
    #checkStyleRunAnalysis: false # Optional
    #pmdRunAnalysis: false # Optional
    #findBugsRunAnalysis: false # Optional

Bağımsız değişkenler

Bağımsız Değişken Description
mavenPOMFile
Maven POM dosyası
(Gerekli) Depo kökünden Maven POM dosyasına göreli yol. Bkz. POM'a giriş.
Varsayılan değer: pom.xml
Bağımsız değişken diğer adları: mavenPomFile
goals
Hedef(ler)
(İsteğe bağlı) Çoğu durumda, kodunuzu derlemek ve bir package .war dosyasına paket etmek için bunu olarak ayarlayın. Bu bağımsız değişkeni boş bırakırsanız derleme başarısız olur. Bkz. Maven derleme yaşam döngüsüne giriş.
Varsayılan değer: paket
options
Seçenekler
(İsteğe bağlı) Kullanmak istediğiniz Tüm Maven komut satırı seçeneklerini belirtin.
publishJUnitResults
Azure Pipelines'da yayımlama
(Gerekli) Maven derlemesi tarafından üretilen JUnit test sonuçlarını yayımlamak için bu seçeneği Azure Pipelines. Eşleşen her test sonuçları Test Results Files dosyası, bir test çalıştırması olarak Azure Pipelines.
Varsayılan değer: true
testResultsFiles
Test sonuçları dosyaları
(Gerekli) Yayımlayacak test sonuçları dosyalarının yolunu ve desenini belirtin. Joker karakterler kullanılabilir ( dahafazla bilgi). Örneğin, */TEST-.xml adı ile başlayan tüm XML dosyaları TEST- için. Kök yol belirtilmezse, varsayılan çalışma dizininin altında dosyalar eşlanır ve değeri $(System.DefaultWorkingDirectory) değişkende kullanılabilir.
Örneğin, 'değeri /TEST- .xml', '$(System.DefaultWorkingDirectory)/ ile eşleşen dosyalarla sonuçlandır /TEST-.xml'.
Varsayılan değer: **/surefire-reports/TEST-*.xml
testRunTitle
Test çalıştırması başlığı
(İsteğe bağlı) Test çalıştırması için bir ad girin.
allowBrokenSymbolicLinks
Test sonuçları dosyaları
(İsteğe bağlı) Görev testleri yayımlarken sembolik bağlantıların bozuk olduğu durumda derlemenin başarısız olması için false olarak ayarlayın. Yalnızca ayarlanmışsa bir publishJUnitResults etkisi vardır true
Varsayılan değer: true
Bağımsız değişken diğer adları: allowBrokenSymlink
codeCoverageTool
Kod kapsamı aracı
(İsteğe bağlı) Kod kapsamı aracını seçin. Kod kapsamı etkinleştirildi, clean Maven çalıştır etkinleştirildi mi hedefi Maven hedefleri listesine ekler.
Varsayılan değer: Yok
Bağımsız değişken diğer adları: codeCoverageToolOption
classFilter
Sınıf ekleme/dışlama filtreleri
(İsteğe bağlı) Sınıfların kod kapsamı toplamaya dahil veya hariç tutulacak filtrelerin virgülle ayrılmış listesi. For example: +:com.,+:org. ,-:my.app.
Bağımsız değişken diğer adları: codeCoverageClassFilter
classFilesDirectories
Sınıf dosyaları dizinleri
(İsteğe bağlı) Bu alan, çok modüllü bir proje için gereklidir. Maven POM dosyasından sınıf dosyaları ve arşiv dosyaları (JAR, WAR vb.) içeren dizinlere göreli yolların virgülle ayrılmış bir listesini belirtin. Bu dizinlerde sınıf dosyaları için kod kapsamı raporlandı.
Örneğin: target/classes,target/testClasses.
Bağımsız değişken diğer adları: codeCoverageClassFilesDirectories
srcDirectories
Kaynak dosya dizinleri
(İsteğe bağlı) Bu alan, çok modüllü bir proje için gereklidir. Maven POM dosyasından kaynak kod dizinleri için göreli yolların virgülle ayrılmış listesini belirtin. Kod kapsamı raporları, kaynak kodu vurgulamak için bunları kullanır.
Örneğin: src/java,src/Test.
Bağımsız değişken diğer adları: codeCoverageSourceDirectories
failIfCoverageEmpty
Kod kapsamı sonuçları eksik olduğunda başarısız olur
(İsteğe bağlı) Kod kapsamı yayımlamak için herhangi bir sonuç oluşturmazsa derlemenin başarısız olması.
Varsayılan değer: false
Bağımsız değişken diğer adları: codeCoverageFailIfEmpty
javaHomeSelection
Set JAVA_HOME by
(Gerekli) Derlemeler JAVA_HOME veya el ile bir JDK yolu girerek bulunan bir JDK sürümünü seçerek bu sürümü ayarlar. Aracı makinede java zaten yüklüyse , 'javaHomeOption' olarak 'yol' ve 'jdkDirectory' ''yi jdk yüklü dizinin yolu olarak ayarerek belirtebilirsiniz.
Varsayılan değer: JDKVersion
Bağımsız değişken diğer adları: javaHomeOption
jdkVersion
JDK sürümü
(İsteğe bağlı) Seçilen JDK sürümünün yolunu keşfetmeye ve uygun şekilde JAVA_HOME.
Not: Microsoft tarafından barındırılan bir aracıda çalışıyorsanız ve istenen Java sürümü aracı makinede ayarlanmış JAVA_HOME değişkeni tarafından belirtilen sürümde yoksa, görev gerekli JDK'yi bulmak için değişkenine (örn. ) bağlı JAVA_HOME_8_X64 olur. Bu değişkenin, JDK'nin bu parametre ve/veya tarafından istenen herhangi bir sürümü ve mimarisi için kendi içinde barındırılan aracılarda ayarlanmış olduğundan emin jdkArchitecture olun.
Varsayılan değer: varsayılan
Bağımsız değişken diğer adları: jdkVersionOption
jdkUserInputPath
JDK yolu
(Gerekli) Verileri JAVA_HOME yola ayarlar.
Bağımsız değişken diğer adları: jdkDirectory
jdkArchitecture
JDK mimarisi
(İsteğe bağlı) İsteğe bağlı olarak JDK'nin mimarisini (x86, x64) sağlamak.
Not: Microsoft tarafından barındırılan bir aracıda çalışıyorsanız ve istenen Java mimarisi aracı makinede ayarlanmış JAVA_HOME değişkeni tarafından belirtilen mimaride yoksa, görev gerekli JDK'yi bulmak için değişkenine (örn. ) bağlı JAVA_HOME_8_X64 olur. Bu değişkenin, JDK'nin bu parametre ve/veya tarafından istenen herhangi bir sürümü ve mimarisi için kendi içinde barındırılan aracılarda ayarlanmış olduğundan emin jdkVersion olun.
Varsayılan değer: x64
Bağımsız değişken diğer adları: jdkArchitectureOption
mavenVersionSelection
Maven sürümü
(Gerekli) Varsayılan Maven sürümünü veya belirtilen özel yolda sürümü kullanır.
Varsayılan değer: Varsayılan
Bağımsız değişken diğer adları: mavenVersionOption
mavenPath
Maven yolu
(Gerekli) Maven yüklemesi için özel yolu (örneğin, /usr/share/maven) sağlar.
Bağımsız değişken diğer adları: mavenDirectory
mavenSetM2Home
Değişken M2_HOME ayarlama
(Gerekli) Özel M2_HOME Maven yükleme yoluna ayarlar.
Varsayılan değer: false
mavenOpts
Şu MAVEN_OPTS ayarlayın:
(İsteğe bağlı) JVM MAVEN_OPTS komut satırı bağımsız değişkenlerini göndermek için kullanılan ortam değişkenlerini ayarlar. -Xmx bayrağı, JVM için kullanılabilen maksimum belleği belirtir.
Varsayılan değer: -Xmx1024m
Bağımsız değişken diğer adları: mavenOptions
mavenFeedAuthenticate
Yerleşik Maven akışlarının kimliğini doğrulama
(Gerekli) Maven akışlarının kimliğini otomatik olarak Azure Artifacts. Yerleşik Maven akışları kullanım dışı değilse, daha hızlı derlemeler için bu seçeneğin seçimini kaldırın.
Varsayılan değer: false
Bağımsız değişken diğer adları: mavenAuthenticateFeed
skipEffectivePom
Yerleşik akışların kimliklerini doğrularken etkili POM oluşturma adımlarını atla
(Gerekli) Yalnızca POM kullanarak yerleşik Maven akışlarının kimliğini doğrular ve [Azure Artifacts/Azure DevOps Server] Paket Yönetimi sağlar.
Varsayılan değer: false
Bağımsız değişken diğer adları: effectivePomSkip
sqAnalysisEnabled
SonarQube veya SonarCloud analizini çalıştırma
(Gerekli) Bu seçenek Maven görevinin 1. sürümünden SonarQube ve SonarCloud market uzantılarını kullanmak üzere değiştirilmiştir. Hedefler alanında hedefleri yürütdikten sonra SonarQube veya SonarCloud analizini çalıştırmak için bu seçeneği etkinleştirin. Önce yükleme veya paket hedefinin çalışması gerekir. Ayrıca, bu Maven görevinin öncesinde derleme işlem hattına uzantılarından bir Analiz Yapılandırması Hazırlama görevi de eklemeniz gerekir.
Varsayılan değer: false
Bağımsız değişken diğer adları: sonarQubeRunAnalysis
sqMavenPluginVersionChoice<>Için SonarQube tarayıcısı (Gerekli) Kullanmak için SonarQube Maven eklentisi sürümü. En son sürümü kullanabilir veya kendi pom.xml.
Varsayılan değer: en son
checkstyleAnalysisEnabled
Checkstyle'i çalıştırma
(İsteğe bağlı) Checkstyle aracını çalıştırın. pom.xml dosyasında checkstyle yapılandırması belirtilmezse varsayılan Sun denetimleri kullanılır. Sonuçlar derleme yapıtları olarak karşıya yüklendi.
Varsayılan değer: false
Bağımsız değişken diğer adları: checkStyleRunAnalysis
pmdAnalysisEnabled
PMD çalıştırma
(İsteğe bağlı) Koddaki hataları bakmak için PMD statik analiz aracını kullanın. Sonuçlar derleme yapıtları olarak karşıya yüklendi.
Varsayılan değer: false
Bağımsız değişken diğer adları: pmdRunAnalysis
findbugsAnalysisEnabled
FindBugs çalıştırma
(İsteğe bağlı) Koddaki hataları bulmak için FindBugs statik analiz aracını kullanın. Sonuçlar derleme yapıtları olarak karşıya yüklendi.
Varsayılan değer: false
Bağımsız değişken diğer adları: findBugsRunAnalysis

Önemli

Bu seçeneği MAVEN_OPTS etkili bir pom doğru oluşturulmaz ve Azure Artifacts doğrulanamıyor -q olabilir.

Örnek

Java uygulamanızı derleme ve Azure Web Uygulamasına dağıtma

Açık kaynak

Bu görev, üzerinde açık kaynak GitHub. Geri bildirim ve katkılar açıktır.

SSS

Bir aracıya ihtiyacım var mı?

Derlemenizi veya yayınını çalıştırmak için en az bir aracı gerekir.

Sorunlarımız var. Bunları nasıl gidererim?

Bkz. Derleme ve Sürüm Sorunlarını Giderme.

Varsayılan aracı havuzunu seçe değilim ve derlememi veya sürümümi kuyruğa ala bilmiyorum. Nasıl yaparım? düzeltebilir misiniz?

Bkz. Aracı havuzları.

My NuGet görev şu hatayla başarısız oluyor: "Hata: yerel sertifikayı verdiremiyor". Bunu nasıl düzeltebilirim?

Bu, güvenilen bir kök sertifika ekerek düzeltilmiştir. Ortam değişkenini derleme NODE_EXTRA_CA_CERTS=file aracınıza ekleyebilir veya görev değişkenini işlem NODE.EXTRA.CA.CERTS=file hattınıza ebilirsiniz. Bu Node.js hakkında daha fazla bilgi için bkz.Node.js belgeleri. İşlem hattınıza değişken ayarlama hakkında yönergeler için bkz. İşlem hattında değişken ayarlama.

Şirket içi TFS'yi kullanıyor ve bu özelliklerden bazılarını göremiyorum. Neden olmasın?

Bu özelliklerden bazıları yalnızca şirket Azure Pipelines şirket içinde kullanılamaz. TFS'nin en son sürümüne yükseltme yaptıysanız bazı özellikler şirket içinde kullanılabilir.