Maven@4 - مهمة Maven v4

إنشاء واختبار ونشر باستخدام Apache Maven.

بناء الجملة

# 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.

الإدخالات

mavenPOMFile - ملف Maven POM
string. مطلوب القيمة الافتراضية: pom.xml.

يحدد المسار النسبي من جذر المستودع إلى ملف Maven POM. راجع مقدمة حول POM لمزيد من المعلومات.


goals - الهدف (الأهداف)
string. القيمة الافتراضية: package.

(اختياري) قم بتعيين إلى package لتجميع التعليمات البرمجية الخاصة بك وحزمها في ملف .war. إذا تركت هذه الوسيطة فارغة، فستفشل البنية. راجع مقدمة حول دورة حياة بناء Maven لمزيد من المعلومات.


options - خيارات
string.

(اختياري) يحدد أي خيارات سطر أوامر Maven تريد استخدامها.


publishJUnitResults - النشر إلى Azure Pipelines
boolean. القيمة الافتراضية: true.

يحدد خيار نشر نتائج اختبار JUnit التي تنتجها بنية Maven إلى Azure Pipelines. سيتم نشر كل مطابقة Test Results Files لملف نتائج الاختبار كتشغيل اختبار في Azure Pipelines.


testResultsFiles - اختبار ملفات النتائج
string. مطلوب عند publishJUnitResults = true. القيمة الافتراضية: **/surefire-reports/TEST-*.xml.

يحدد مسار ونمط ملفات نتائج الاختبار المراد نشرها.
يمكن استخدام أحرف البدل.
مزيد من المعلومات حول أنماط مطابقة الملفات.
على سبيل المثال، **/TEST-*.xml لجميع ملفات XML التي يبدأ اسمها ب TEST-. إذا لم يتم تحديد مسار جذر، تتم مطابقة الملفات أسفل دليل العمل الافتراضي، والتي تتوفر قيمتها في المتغير $(System.DefaultWorkingDirectory). على سبيل المثال، ستؤدي قيمة **/TEST-*.xml بالفعل إلى مطابقة الملفات من $(System.DefaultWorkingDirectory)/**/TEST-*.xml.


testRunTitle - عنوان تشغيل الاختبار
string. ‏‏اختياري. استخدم عندما publishJUnitResults = true.

يحدد اسما لتشغيل الاختبار.


allowBrokenSymlinks - السماح بالارتباطات الرمزية المقطوعة
الاسم المستعار للإدخل: allowBrokenSymbolicLinks. boolean. ‏‏اختياري. استخدم عندما publishJUnitResults = true. القيمة الافتراضية: true.

إذا تم تعيينه إلى false، يفشل الإنشاء عندما تعثر المهمة على ارتباط رمزي مقطوع أثناء نشر نتيجة الاختبارات.


codeCoverageToolOption - أداة تغطية التعليمات البرمجية
الاسم المستعار للإدخل: codeCoverageTool. string. القيم المسموح بها: None، ، Cobertura. JaCoCo القيمة الافتراضية: None.

يحدد أداة تغطية التعليمات البرمجية. يؤدي تمكين تغطية التعليمات البرمجية إلى إدراج الهدف النظيف في قائمة أهداف Maven عند تشغيل Maven.


codeCoverageClassFilter - عوامل تصفية تضمين/استبعاد الفئة
الاسم المستعار للإدخل: classFilter. string. ‏‏اختياري. استخدم عندما codeCoverageTool != None.

يحدد قائمة مفصولة بفواصل من عوامل التصفية لتضمين الفئات أو استبعادها من جمع تغطية التعليمات البرمجية. على سبيل المثال، ⁧+:com.*,+:org.*,-:my.app*.*⁩.


codeCoverageClassFilesDirectories - دلائل ملفات الفئة
الاسم المستعار للإدخل: classFilesDirectories. string. ‏‏اختياري. استخدم عندما codeCoverageTool = JaCoCo.

هذا الحقل مطلوب لمشروع متعدد الوحدات.
يحدد قائمة مفصولة بفواصل من المسارات النسبية من ملف Maven POM إلى الدلائل التي تحتوي على ملفات الفئة وملفات الأرشيف (JAR و WAR وما إلى ذلك). يتم الإبلاغ عن تغطية التعليمات البرمجية لملفات الفئة في هذه الدلائل. على سبيل المثال، ⁧target/classes,target/testClasses⁩.


codeCoverageSourceDirectories - دلائل ملفات المصدر
الاسم المستعار للإدخل: srcDirectories. string. ‏‏اختياري. استخدم عندما codeCoverageTool = JaCoCo.

هذا الحقل مطلوب لمشروع متعدد الوحدات.
يحدد قائمة مفصولة بفواصل من المسارات النسبية من ملف Maven POM إلى دلائل التعليمات البرمجية المصدر. تستخدم تقارير تغطية التعليمات البرمجية هذه لتمييز التعليمات البرمجية المصدر. على سبيل المثال، ⁧src/java,src/Test⁩.


codeCoverageFailIfEmpty - فشل عندما تكون نتائج تغطية التعليمات البرمجية مفقودة
الاسم المستعار للإدخل: failIfCoverageEmpty. boolean. ‏‏اختياري. استخدم عندما codeCoverageTool != None. القيمة الافتراضية: false.

يفشل البناء إذا لم تنتج تغطية التعليمات البرمجية أي نتائج لنشرها.


codeCoverageRestoreOriginalPomXml - استعادة pom.xml الأصلية بعد تنفيذ المهمة
الاسم المستعار للإدخل: restoreOriginalPomXml. boolean. ‏‏اختياري. استخدم عندما codeCoverageTool != None. القيمة الافتراضية: false.

تعدل تغطية التعليمات البرمجية pom.xml لإنتاج نتائج. استخدم هذا الخيار إذا كنت بحاجة إلى الاحتفاظ الأصلي .pom.xml


javaHomeOption - تعيين JAVA_HOME بواسطة
الاسم المستعار للإدخل: javaHomeSelection. string. مطلوب القيم المسموح بها: JDKVersion (إصدار JDK)، Path. القيمة الافتراضية: JDKVersion.

يعين JAVA_HOME إما عن طريق تحديد إصدار JDK الذي سيتم اكتشافه أثناء الإصدارات أو عن طريق إدخال مسار JDK يدويا. إذا كان لديك بالفعل Java مثبتا على جهاز العامل، يمكنك تحديده عن طريق إعداد javaHomeOption ك path و jdkDirectory كمسار إلى الدليل المثبت JDK.


jdkVersionOption - إصدار JDK
الاسم المستعار للإدخل: jdkVersion. string. ‏‏اختياري. استخدم عندما javaHomeSelection = JDKVersion. القيم المسموح بها: default، 1.17 (JDK 17)، 1.11 (JDK 11)، 1.10 (JDK 10 (خارج الدعم))، 1.9 (JDK 9 (خارج الدعم))، 1.8 (JDK 8)، 1.7 (JDK 7)، 1.6 (JDK 6 (خارج الدعم)). القيمة الافتراضية: default.

يحاول اكتشاف المسار إلى إصدار JDK المحدد وتعيينه JAVA_HOME وفقا لذلك.
ملاحظه: إذا كان التشغيل على عامل لا تستضيفه Microsoft، ولم يكن إصدار Java المطلوب هو الذي يشير إليه المتغير الذي تم تعيينه JAVA_HOME على جهاز العامل، فستعتمد المهمة على المتغير JAVA_HOME_{version}_{arch} (على سبيل المثال: JAVA_HOME_8_X64) لتحديد موقع JDK الضروري. تأكد من تعيين هذا المتغير على العوامل المستضافة ذاتيا لأي إصدار وبنية JDK التي قد يتم طلبها بواسطة هذه المعلمة و/أو بواسطة jdkArchitecture.


jdkDirectory - مسار JDK
الاسم المستعار للإدخل: jdkUserInputPath. string. مطلوب عند javaHomeSelection = Path.

تعيين JAVA_HOME إلى المسار المحدد.


jdkArchitectureOption - بنية JDK
الاسم المستعار للإدخل: jdkArchitecture. string. ‏‏اختياري. استخدم عندما jdkVersion != default. القيم المسموح بها: x86، . x64 القيمة الافتراضية: x64.

يوفر بنية (x86، x64) ل JDK.


mavenVersionOption - إصدار Maven
الاسم المستعار للإدخل: mavenVersionSelection. string. مطلوب القيم المسموح بها: Default، Path (مسار مخصص). القيمة الافتراضية: Default.

يحدد إما إصدار Maven الافتراضي أو الإصدار في المسار المخصص المحدد.


mavenDirectory - مسار Maven
الاسم المستعار للإدخل: mavenPath. string. مطلوب عند mavenVersionSelection = Path.

يوفر المسار المخصص لتثبيت Maven (على سبيل المثال: /usr/share/maven).


mavenSetM2Home - تعيين متغير M2_HOME
boolean. ‏‏اختياري. استخدم عندما mavenVersionSelection = Path. القيمة الافتراضية: false.

M2_HOME تعيين المتغير إلى مسار تثبيت Maven مخصص.


mavenOptions - تعيين MAVEN_OPTS إلى
الاسم المستعار للإدخل: mavenOpts. string. القيمة الافتراضية: -Xmx1024m.

MAVEN_OPTS تعيين متغير البيئة، الذي يستخدم لإرسال وسيطات سطر الأوامر لبدء تشغيل JVM. -Xmx تحدد العلامة الحد الأقصى للذاكرة المتوفرة ل JVM.


mavenAuthenticateFeed - المصادقة باستخدام موجزات Artifacts
الاسم المستعار للإدخل: mavenFeedAuthenticate. boolean. القيمة الافتراضية: false.

المصادقة تلقائيا باستخدام موجزات Azure Artifacts. إذا لم تكن موجزات Artifacts قيد الاستخدام، فإلغاء تحديد هذا الخيار للحصول على إصدارات أسرع.


effectivePomSkip - تخطي إنشاء POM فعال أثناء المصادقة باستخدام موجزات Artifacts
الاسم المستعار للإدخل: skipEffectivePom. boolean. القيمة الافتراضية: false.

المصادقة باستخدام موجزات Artifacts باستخدام POM فقط.


sonarQubeRunAnalysis - تشغيل تحليل SonarQube أو SonarCloud
الاسم المستعار للإدخل: sqAnalysisEnabled. boolean. القيمة الافتراضية: false.

تم تغيير هذا الخيار من استخدام الإصدار 1 من مهمة Maven إلى استخدام ملحقات سوق SonarQube و SonarCloud .
قم بتمكين هذا الخيار لتشغيل تحليل SonarQube أو SonarCloud بعد تنفيذ الأهداف في حقل الأهداف . يجب تشغيل هدف التثبيت أو الحزمة أولا. قبل مهمة Maven هذه، يجب أيضا إضافة مهمة Prepare Analysis Configuration من أحد الملحقات إلى البنية الأساسية لبرنامج ربط العمليات التجارية للبناء.


isJacocoCoverageReportXML - استخدام تقارير XML Jacoco لتحليل SonarQube
boolean. ‏‏اختياري. استخدم عندما sqAnalysisEnabled = true && codeCoverageTool = JaCoCo. القيمة الافتراضية: false.

يستخدم تقارير XML Jacoco لتحليل SonarQube. تعرف على المزيد حول تقارير الاختبار.


sqMavenPluginVersionChoice - الماسح الضوئي SonarQube لإصدار Maven
string. مطلوب عند sqAnalysisEnabled = true. القيم المسموح بها: latest (استخدم أحدث إصدار)، pom (استخدم الإصدار المعلن في pom.xml). القيمة الافتراضية: latest.

يحدد إصدار المكون الإضافي SonarQube Maven لاستخدامه. يمكنك استخدام أحدث إصدار أو الاعتماد على الإصدار في .pom.xml


checkStyleRunAnalysis - تشغيل Checkstyle
الاسم المستعار للإدخل: checkstyleAnalysisEnabled. boolean. القيمة الافتراضية: false.

تشغيل أداة Checkstyle مع عمليات فحص الشمس الافتراضية. إذا لم يتم تحديد تكوين Checkstyle في pom.xml الملف، يتم استخدام عمليات فحص Sun الافتراضية. يتم تحميل النتائج كقطع اصطناعية للبناء.


pmdRunAnalysis - تشغيل PMD
الاسم المستعار للإدخل: pmdAnalysisEnabled. boolean. القيمة الافتراضية: false.

يستخدم أداة التحليل الثابت PMD للبحث عن الأخطاء في التعليمات البرمجية. يتم تحميل النتائج كقطع اصطناعية للبناء.


findBugsRunAnalysis - تشغيل FindBugs
الاسم المستعار للإدخل: findbugsAnalysisEnabled. boolean. القيمة الافتراضية: false.

يستخدم أداة تحليل FindBugs الثابتة للبحث عن الأخطاء في التعليمات البرمجية. يتم تحميل النتائج كقطع اصطناعية للبناء.


spotBugsRunAnalysis - تشغيل تحليل SpotBugs
الاسم المستعار للإدخل: spotBugsAnalysisEnabled. boolean. القيمة الافتراضية: false.

قم بتمكين هذا الخيار لتشغيل المكون الإضافي لتحليل التعليمات البرمجية SpotBugs. مزيد من المعلومات حول المكون الإضافي SpotBugs Maven.


spotBugsVersion - رقم الإصدار
الاسم المستعار للإدخل: spotBugsMavenPluginVersion. string. ‏‏اختياري. استخدم عندما spotBugsAnalysisEnabled = true. القيمة الافتراضية: 4.5.3.0.

تعرف على الإصدارات المتوفرة من SpotBugs.


spotBugsGoal - الهدف من المكون الإضافي spotbugs
string. ‏‏اختياري. استخدم عندما spotBugsAnalysisEnabled = true. القيم المسموح بها: spotbugs ("spotbugs" - إنشاء تقرير عن الأخطاء التي تم العثور عليها)، check ("التحقق" - فشل البنية الأساسية لبرنامج ربط العمليات التجارية إذا تم الكشف عن الأخطاء). القيمة الافتراضية: spotbugs.

يحدد هدف المكون الإضافي. تعرف على المزيد حول أهداف SpotBugs.


failWhenBugsFound - فشل عند العثور على الأخطاء باستخدام spotbugs:check
الاسم المستعار للإدخل: spotBugsFailWhenBugsFound | sbFailWhenBugsFound. boolean. ‏‏اختياري. استخدم عندما spotBugsAnalysisEnabled = true && spotBugsGoal = check. القيمة الافتراضية: true.

يفشل عند العثور على الأخطاء إذا تم تحديد Check Goal . تعرف على المزيد حول تفاصيل معلمة SpotBug.


خيارات التحكم بالمهمة

تحتوي جميع المهام على خيارات التحكم بالإضافة إلى مدخلات المهام الخاصة بها. لمزيد من المعلومات، راجع خيارات التحكم وخصائص المهمة الشائعة.

متغيرات الإخراج

لا شيء

الملاحظات

تم نقل تكوين تحليل SonarQube إلى ملحقات SonarQube أو SonarCloud في المهمة إعداد تكوين التحليل.

هام

عند استخدام -q الخيار في MAVEN_OPTS، لن يتم إنشاء pom فعال بشكل صحيح، وقد لا تتمكن موجزات Azure Artifacts من المصادقة.

هام

إذا كان إصدار JDK الذي تريد استخدامه مثبتا بالفعل على الوكيل الخاص بك، فقم بتعيين javaHomeOption إلى path وتعيين jdkDirectory إلى مسار إصدار JDK. تقوم هذه الخيارات بتعيين JAVA_HOME_11_X64 متغير البيئة، وهو مطلوب بواسطة مهمة Maven. يتم تعيين متغير البيئة هذا تلقائيا إذا كنت تستخدم مهمة مثبت أداة Java.

الأسئلة المتداولة

لدي مشروع متعدد الوحدات، ولكن البناء الخاص بي يفشل. ماذا يجب أن أتحقق؟

تأكد من تحديد #codeCoverageClassFilesDirectories و #codeCoverageSourceDirectories كإدخل مهمة. هذه المعلمتان اختياريتان لمشروع وحدة نمطية واحدة ولكنها مطلوبة للمشاريع متعددة الوحدات النمطية.

أمثلة

المتطلبات

المتطلبات الوصف
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية YAML، الإصدار الكلاسيكي، الإصدار الكلاسيكي
يعمل على Agent, DeploymentGroup
المطالب يجب أن يكون لدى الوكلاء المستضافين ذاتيا قدرات تطابق المتطلبات التالية لتشغيل المهام التي تستخدم هذه المهمة: maven
القدرات لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة.
قيود الأوامر أي
متغيرات Settable أي
إصدار الوكيل 1.89.0 أو أحدث
فئة المهمة البنية

راجع أيضًا