Gradle görevi

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

Bir Gradle sarmalayıcı betiği kullanarak derlemek için bu görevi kullanın.

YAML kod parçacığı

# Gradle
# Build using a Gradle wrapper script
- task: Gradle@2
  inputs:
    #gradleWrapperFile: 'gradlew' 
    #cwd: # Optional
    #options: # Optional
    #tasks: 'build' # A list of tasks separated by spaces, such as 'build test'
    #publishJUnitResults: true 
    #testResultsFiles: '**/TEST-*.xml' # Required when publishJUnitResults == True
    #testRunTitle: # Optional
    #codeCoverageToolOption: 'None' # Optional. Options: none, cobertura, jaCoCo
    #codeCoverageClassFilesDirectories: 'build/classes/main/' # Required when codeCoverageToolOption == False
    #codeCoverageClassFilter: # Optional. Comma-separated list of filters to include or exclude classes from collecting code coverage. For example: +:com.*,+:org.*,-:my.app*.*
    #codeCoverageFailIfEmpty: false # Optional
    #javaHomeOption: 'JDKVersion' # Options: jDKVersion, path
    #jdkVersionOption: 'default' # Optional. Options: default, 1.11, 1.10, 1.9, 1.8, 1.7, 1.6
    #jdkDirectory: # Required when javaHomeOption == Path
    #jdkArchitectureOption: 'x64' # Optional. Options: x86, x64
    #gradleOptions: '-Xmx1024m' # Optional
    #sonarQubeRunAnalysis: false 
    #sqGradlePluginVersionChoice: 'specify' # Required when sonarQubeRunAnalysis == True# Options: specify, build
    #sonarQubeGradlePluginVersion: '2.6.1' # Required when sonarQubeRunAnalysis == True && SqGradlePluginVersionChoice == Specify
    #checkStyleRunAnalysis: false # Optional
    #findBugsRunAnalysis: false # Optional
    #pmdRunAnalysis: false # Optional

Bağımsız değişkenler

Bağımsız Değişken Açıklama
wrapperScript
Gradle sarmalayıcı

Istenir Derleme için kullanılan gradlew sarmalayıcı deposundaki konum. Windows aracılar (Microsoft tarafından barındırılan aracılar dahil) için sarmalayıcı kullanmanız gerekir gradlew.bat . Linux veya macOS aracılarında gradlew kabuk betiği kullanılabilir.

Bkz. Gradle sarmalayıcı.


Varsayılan değer: gradlew
Bağımsız değişken diğer adları: gradleWrapperFile
options
Seçenekler

Seçim Gradle sarmalayıcıya geçirmek istediğiniz komut satırı seçeneklerini belirtin.

Bkz. Gradle komut satırı.

tasks
Görevler

Istenir Gradle için yürütülecek görevler. Görev adlarının bir listesi boşluklarla ayrılmalıdır ve gradlew tasks bir komut isteminden verilden alınabilir.

Bkz. Gradle derleme betiği temelleri.


Varsayılan değer: derleme

JUnit test sonuçları seçenekleri

Bağımsız Değişken Açıklama
publishJUnitResults
Azure Pipelines yayımlama
Istenir Gradle derlemesi tarafından üretilen junit Test sonuçlarını/tfsAzure Pipelines yayımlamak için bu seçeneği belirleyin.
Varsayılan değer: true
testResultsFiles
Test sonuçları dosyaları
Istenir Test sonuçları dosyaları yolu. Joker karakterler kullanılabilir. Örneğin, */TEST-.xml adı test-ile başlayan tüm XML dosyaları için. "
Varsayılan değer: * */TEST-* .xml
testRunTitle
Test çalıştırması başlığı
Seçim Bu derleme için JUnit test çalışması sonuçları için bir başlık atayın.

Kod kapsamı seçenekleri

Bağımsız Değişken Açıklama
codeCoverageTool
Kod kapsamı aracı
Seçim Yapı için test çalışmalarının kapsadığı kodu belirlemek için bir kod kapsamı aracı seçin.
Varsayılan değer: yok
Bağımsız değişken diğer adları: codeCoverageToolOption
classFilesDirectories
Sınıf dosyaları dizinleri
Istenir Sınıf dosyalarını ve arşiv dosyalarını (JAR, WAR vb.) içeren dizinlerin virgülle ayrılmış listesi. Kod kapsamı, bu dizinlerdeki sınıf dosyaları için raporlanır. Normalde, ' Build/Classes/Main ' altındaki sınıflar, Gradle derlemeleri için varsayılan sınıf dizini olan aranır.
Varsayılan değer: derleme/sınıflar/Main/
Bağımsız değişken diğer adları: codeCoverageClassFilesDirectories
classFilter
Sınıf içerme/dışlama filtreleri
Seçim Kod kapsamı toplamayı kapsayan sınıfları dahil etmek veya hariç tutmak için filtrelerin virgülle ayrılmış listesi. Örneğin: +: com. *, +: org. *,-: My. app *. *. "
Bağımsız değişken diğer adları: codeCoverageClassFilter
failIfCoverageEmpty
Kod kapsamı sonuçları eksik olduğunda başarısız olur
Seçim Kod kapsamı yayımlanacak sonuçları üretmediğinde derlemeyi devreder
Varsayılan değer: false
Bağımsız değişken diğer adları: codeCoverageFailIfEmpty

Gelişmiş seçenekler

Bağımsız Değişken Açıklama
cwd
Çalışma dizini
Seçim Gradle derlemesinin çalıştırılacağı çalışma dizini. Belirtilmezse, depo kök dizini kullanılır
javaHomeSelection
JAVA_HOME ayarla
Istenir Derlemeler sırasında keşfedilecek bir JDK sürümü seçerek veya JDK yolunu el ile girerek JAVA_HOME ayarlar
Varsayılan değer: JDKVersion
Bağımsız değişken diğer adları: javaHomeOption
jdkVersion
JDK sürümü
Seçim Seçilen JDK sürümünün yolunu bulmaya çalışır ve JAVA_HOME uygun şekilde ayarlanır
Bağımsız değişken diğer adları: jdkDirectory
jdkUserInputPath
JDK yolu
Istenir Verilen yola JAVA_HOME ayarlar
Varsayılan değer: varsayılan
Bağımsız değişken diğer adları: jdkVersionOption
jdkArchitecture
JDK mimarisi
Seçim İsteğe bağlı olarak JDK mimarisini (x86, x64) sağlayın.
Varsayılan değer: x64
Bağımsız değişken diğer adları: jdkArchitectureOption
gradleOpts
GRADLE_OPTS ayarla
Seçim JVM 'yi başlatmak için komut satırı bağımsız değişkenlerini göndermek için kullanılan GRADLE_OPTS ortam değişkenini ayarlar. XMX bayrağı, JVM için kullanılabilir maksimum belleği belirtir.
Varsayılan değer:-Xmx1024m
Bağımsız değişken diğer adları: gradleOptions

Kod Analizi Seçenekleri

Bağımsız Değişken Açıklama
sqAnalysisEnabled
Sonarquya ya da SonarCloud analizini Çalıştır
Istenir Bu seçenek, Gradle görevinin 1. sürümünden sonarquin ve sonarcloud Market uzantılarını kullanacak şekilde değiştirilmiştir. Görevler alanındaki görevleri yürüttükten sonra sonarquya ya da sonarcloud analizini çalıştırmak için bu seçeneği etkinleştirin. Bu Gradle görevden önce, uzantılardan birinden derleme işlem hattına bir Çözümleme yapılandırma görevi de eklemeniz gerekir
Varsayılan değer: false
Bağımsız değişken diğer adları: sonarQubeRunAnalysis
sqGradlePluginVersionChoice
Gradle sürümü için Sonarquin tarayıcısı
Istenir Kullanılacak Sonarquin Gradle Plugin sürümü. Bunu Gradle yapılandırma dosyanızda bildirebilir veya burada bir sürüm belirtebilirsiniz
Varsayılan değer: belirt
sqGradlePluginVersion
Gradle eklentisi sürümü için Sonarquin tarayıcısı
Istenir Tüm kullanılabilir sürümler için başvurun
Varsayılan değer: 2.6.1
Bağımsız değişken diğer adları: sonarQubeGradlePluginVersion
checkstyleAnalysisEnabled
Checkstyle'i çalıştırma
(İsteğe bağlı) Varsayılan Sun denetimleriyle Checkstyle aracını çalıştırı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ı: checkStyleRunAnalysis
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. Gradle 6.0'da bu eklenti kaldırıldı. Bunun yerine spotbugs eklentisini kullanın. Daha fazla bilgi.
Varsayılan değer: false
Bağımsız değişken diğer adları: findBugsRunAnalysis
pmdAnalysisEnabled
PMD çalıştırma
(İsteğe bağlı) Koddaki hataları bakmak için PMD Java 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
spotBugsAnalysisEnabled
Spotbugs çalıştırma
(Gerekli) spotBugs'u çalıştırmak için bu seçeneği etkinleştirin. Bu eklenti Gradle v5.6 veya sonraki bir sürümle çalışır. Sonuçlar derleme yapıtları olarak karşıya yüklendi. Daha fazla bilgi. Lütfen Gradle 5.6 veya sonraki bir sürüm kullanmaya dikkat edin. Gradle'ın önceki bir sürümünü kullanıyorsanız eklenti beklenmedik bir şekilde çalışıyor veya hiç çalışmıyor olabilir.
Varsayılan değer: false
Bağımsız değişken diğer adları: spotBugsAnalysis
spotBugsGradlePluginVersionChoice
Gradle sürümü için Spotbugs eklentisi
(Gerekli) Kullanmak için Spotbugs Gradle eklentisi sürümü. Bunu Gradle yapılandırma dosyanıza bildirebilirsiniz veya burada bir sürüm belirtebilirsiniz.
Varsayılan değer: belirtin
spotbugsGradlePluginVersion
Gradle eklentisi sürümü için Spotbugs
(Gerekli) Kullanılabilir tüm sürümler için bkz.
Varsayılan değer: 4.7.0
Bağımsız değişken diğer adları: spotbugsGradlePluginVersion

Görev denetimi seçenekleri

Örnek

Gradle ile Java uygulamalarınızı oluşturma

Açık kaynak

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

SSS

Nasıl yaparım? Gradle projemdan bir sarmalayıcı mı oluştursunuz?

Gradle sarmalayıcı, derleme aracılarının JVM dışında derleme aracısı üzerinde herhangi bir yazılım yapılandırmasına gerek kalmadan depoya iade edilir tam Gradle ortamını indirmesine ve yapılandırmasına olanak sağlar.

  1. build.gradle'nizin bulunduğu kök proje dizininden aşağıdaki komutu kullanarak Gradle sarmalayıcısını oluşturun:

    jamal@fabrikam> gradle wrapper

  2. Upload depoya Gradle sarmalayıcınızı yükleme.

    Gradle sarmalayıcı tarafından oluşturulan bir ikili yapıt vardır ( üzerinde gradle/wrapper/gradle-wrapper.jar bulunur). Bu ikili dosya küçüktür ve güncelleştirmeyi gerektirmez. Derleme aracısı üzerinde Gradle yapılandırma çalıştırması çalıştırmayı değiştirmeniz gerekirse, güncelleştirmeniz gradle-wrapper.properties gerekir.

    Depo aşağıdakine benzer şekilde görüntü gerekir:

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

Nasıl yaparım? indirirken zaman aşımını düzeltiyor musunuz?

Bağımlılıkları indirirken Read timed out olduğu gibi hataları düzeltmek için Gradle 4.3+ kullanıcıları, 'ye ekleyerek zaman aşımını Options-Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000 değiştirebilir. Bu, zaman aşımını 10 saniyeden 1 dakikaya artırır.

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.