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 |
|---|---|
wrapperScriptGradle 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 Bkz. Gradle sarmalayıcı. Varsayılan değer: gradlew Bağımsız değişken diğer adları: gradleWrapperFile
|
optionsSeçenekler |
Seçim Gradle sarmalayıcıya geçirmek istediğiniz komut satırı seçeneklerini belirtin. Bkz. Gradle komut satırı. |
tasksGö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 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 |
|---|---|
publishJUnitResultsAzure 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 |
testResultsFilesTest 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 |
testRunTitleTest ç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 |
|---|---|
codeCoverageToolKod 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 |
classFilesDirectoriesSı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 |
classFilterSı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 |
failIfCoverageEmptyKod 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 |
javaHomeSelectionJAVA_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 |
jdkVersionJDK 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 |
jdkUserInputPathJDK yolu |
Istenir Verilen yola JAVA_HOME ayarlar Varsayılan değer: varsayılan Bağımsız değişken diğer adları: jdkVersionOption |
jdkArchitectureJDK 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 |
gradleOptsGRADLE_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 |
|---|---|
sqAnalysisEnabledSonarquya 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
|
sqGradlePluginVersionChoiceGradle 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 |
sqGradlePluginVersionGradle 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
|
checkstyleAnalysisEnabledCheckstyle'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
|
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. 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
|
pmdAnalysisEnabledPMD ç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
|
spotBugsAnalysisEnabledSpotbugs ç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
|
spotBugsGradlePluginVersionChoiceGradle 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 |
spotbugsGradlePluginVersionGradle 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.
build.gradle'nizin bulunduğu kök proje dizininden aşağıdaki komutu kullanarak Gradle sarmalayıcısını oluşturun:
jamal@fabrikam> gradle wrapperUpload 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.jarbulunur). 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ştirmenizgradle-wrapper.propertiesgerekir.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.