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 |
|---|---|
mavenPOMFileMaven 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 |
goalsHedef(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 |
optionsSeçenekler |
(İsteğe bağlı) Kullanmak istediğiniz Tüm Maven komut satırı seçeneklerini belirtin. |
publishJUnitResultsAzure 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 |
testResultsFilesTest 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 |
testRunTitleTest çalıştırması başlığı |
(İsteğe bağlı) Test çalıştırması için bir ad girin. |
allowBrokenSymbolicLinksTest 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 |
codeCoverageToolKod 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 |
classFilterSı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 |
classFilesDirectoriesSı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 |
srcDirectoriesKaynak 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 |
failIfCoverageEmptyKod 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 |
javaHomeSelectionSet 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 |
jdkVersionJDK 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 |
jdkUserInputPathJDK yolu |
(Gerekli) Verileri JAVA_HOME yola ayarlar. Bağımsız değişken diğer adları: jdkDirectory |
jdkArchitectureJDK 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 |
mavenVersionSelectionMaven 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 |
mavenPathMaven 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 |
mavenSetM2HomeDeğ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 |
mavenFeedAuthenticateYerleş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 |
skipEffectivePomYerleş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 |
sqAnalysisEnabledSonarQube 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 |
checkstyleAnalysisEnabledCheckstyle'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 |
pmdAnalysisEnabledPMD ç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 |
findbugsAnalysisEnabledFindBugs ç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.