Kantra عبارة عن واجهة سطر أوامر (CLI) تعمل على توحيد قدرات التحليل والتحويل الخاصة بـ Konveyor. وهو متوفر لنظام التشغيل Linux، وMac، وWindows.
المتطلبات الأساسية
تثبيت
الإعداد (لنظامي التشغيل Mac وWindows فقط)
الاستخدام
تحليل التطبيق
تحويل تطبيق أو قواعد XML
اختبار قواعد YAML
مراجع
مدونة لقواعد السلوك
مطلوب Podman 4+ لتشغيل kantra. افتراضيًا، تم تكوينه لاستخدام ملف podman القابل للتنفيذ والمتوفر على المضيف.
على الرغم من اختبار kantra بشكل أساسي باستخدام podman، إلا أنه يمكن استخدام Docker Engine 24+ أو Docker Desktop 4+ كبديل. لاستخدام عامل الإرساء، قم بتعيين متغير البيئة CONTAINER_TOOL
الذي يشير إلى المسار القابل للتنفيذ لعامل الإرساء:
تصدير CONTAINER_TOOL=/usr/bin/docker
لتثبيت kantra، قم بتنزيل الملف القابل للتنفيذ لنظامك الأساسي وأضفه إلى المسار.
ملاحظة: بالنسبة لنظام التشغيل Mac، قد تتلقى رسالة الخطأ "تعذر على Apple التحقق". إذا قمت بذلك، يمكنك تشغيل xattr -d com.apple.quarantine kantra
لجعل Apple تثق في ثنائي kantra
.
انتقل إلى صفحة الإصدار وقم بتنزيل الملف المضغوط الذي يحتوي على ملف ثنائي لنظامك الأساسي وبنيتك. قم بفك ضغط الأرشيف وأضف الملف القابل للتنفيذ فيه إلى المسار.
أسهل طريقة للحصول على أحدث (أو ملف معين/أقدم) قابل للتنفيذ هي الحصول عليه من صورة الحاوية المعنية.
قم بتعيين متغير الصدفة kantra_version
على إصدار معين إذا كنت تريد الحصول على هذا الإصدار، على سبيل المثال، kantra_version=v0.4.0
.
يجري:
${CONTAINER_TOOL:-podman} cp $(${CONTAINER_TOOL:-podman} create --name kantra-download quay.io/konveyor/kantra:${kantra_version:-latest}):/usr/local/bin/kantra . && ${CONTAINER_TOOL:-podman} rm kantra-download
عندما لا تستخدم Docker for Desktop على جهاز Mac الخاص بك (انظر أعلاه)، فإنك تحتاج إلى تشغيل جهاز podman قبل تشغيل أي أوامر podman (راجع الإعداد لنظام Mac)
بمجرد تشغيل الجهاز، قم بتشغيل:
${CONTAINER_TOOL:-podman} cp $(${CONTAINER_TOOL:-podman} إنشاء --name kantra-download quay.io/konveyor/kantra:${kantra_version:-latest}):/usr/local/bin/darwin- كانترا. && ${CONTAINER_TOOL:-podman} rm kantra-download
عندما لا تستخدم Docker for Desktop على نظام التشغيل Windows لديك (انظر أعلاه)، فإنك تحتاج إلى تشغيل جهاز podman قبل تشغيل أي أوامر podman (راجع الإعداد لنظام Windows)
بمجرد تشغيل الجهاز، قم بتشغيل:
${CONTAINER_TOOL:-podman} cp $(${CONTAINER_TOOL:-podman} إنشاء --name kantra-download quay.io/konveyor/kantra:${kantra_version:-latest}):/usr/local/bin/windows- كانترا. && ${CONTAINER_TOOL:-podman} rm kantra-download
تأكد من إضافة الملف القابل للتنفيذ إلى
PATH
.
في نظامي التشغيل Mac وWindows، يجب تشغيل جهاز podman قبل تشغيل أي أوامر، إلا إذا كنت تستخدم Docker (لسطح المكتب):
قبل بدء تشغيل جهاز podman، قم بتشغيل:
ulimit -n غير محدود
قم ببدء تشغيل جهاز podman الخاص بك:
بودمان 4 :
يتطلب Podman 4 تثبيت بعض أدلة المضيف داخل الجهاز الافتراضي:
آلة بودمان init <vm_name> -v $HOME:$HOME -v /private/tmp:/private/tmp -v /var/folders/:/var/folders/
بودمان 5 :
يقوم Podman 5 بتثبيت مجلدات $HOME و /private/tmp و /var/folders بشكل افتراضي، ما عليك سوى تشغيل الجهاز:
آلة بودمان الحرف الأول <vm_name>
إذا كانت أدلة الإدخال و/أو الإخراج التي تنوي استخدامها مع kantra تقع خارج شجرة أدلة $HOME و/private/tmp و/var/folders، فيجب عليك تحميل هذه الأدلة بالإضافة إلى المجلدات الافتراضية.
زيادة موارد podman (مطلوب الحد الأدنى من ذاكرة 4G):
مجموعة آلة بودمان <vm_name> - وحدة المعالجة المركزية 4 - الذاكرة 4096
قم بتهيئة الجهاز:
آلة بودمان الحرف الأول <vm_name>
لدى Kantra ثلاثة أوامر فرعية:
تحليل : يسمح هذا الأمر الفرعي بتشغيل تحليل التعليمات البرمجية المصدر على التعليمات البرمجية المصدرية المدخلة أو الثنائية.
تحويل : يسمح هذا الأمر الفرعي إما بتحويل قواعد XML إلى YAML أو تشغيل وصفات OpenRewrite على الكود المصدري.
test : يسمح هذا الأمر الفرعي باختبار قواعد YAML.
يتيح الأمر الفرعي Analysis تشغيل التعليمات البرمجية المصدرية والتحليل الثنائي باستخدام Analyzer-LSP
لتشغيل التحليل على التعليمات البرمجية المصدرية للتطبيق، قم بتشغيل:
تحليل kantra --input=<path/to/source/code> --output=<path/to/output/dir>
--input يجب أن يشير إلى دليل التعليمات البرمجية المصدر أو ملف ثنائي، --output يجب أن يشير إلى دليل لاحتواء نتائج التحليل.
جميع الأعلام:
Flags: --analyze-known-libraries analyze known open-source libraries --bulk running multiple analyze commands in bulk will result to combined static report --context-lines int number of lines of source code to include in the output for each incident (default 100) -d, --dependency-folders stringArray directory for dependencies --enable-default-rulesets run default rulesets with analysis (default true) -h, --help help for analyze --http-proxy string HTTP proxy string URL --https-proxy string HTTPS proxy string URL --incident-selector string an expression to select incidents based on custom variables. ex: (!package=io.konveyor.demo.config-utils) -i, --input string path to application source code or a binary --jaeger-endpoint string jaeger endpoint to collect traces --json-output create analysis and dependency output as json -l, --label-selector string run rules based on specified label selector expression --list-sources list rules for available migration sources --list-targets list rules for available migration targets --maven-settings string path to a custom maven settings file to use -m, --mode string analysis mode. Must be one of 'full' or 'source-only' (default "full") --no-proxy string proxy excluded URLs (relevant only with proxy) -o, --output string path to the directory for analysis output --overwrite overwrite output directory --rules stringArray filename or directory containing rule files. Use multiple times for additional rules: --rules <rule1> --rules <rule2> ... --skip-static-report do not generate static report -s, --source stringArray source technology to consider for analysis. Use multiple times for additional sources: --source <source1> --source <source2> ... -t, --target stringArray target technology to consider for analysis. Use multiple times for additional targets: --target <target1> --target <target2> ...
حسب التصميم، تدعم kantra تحليل التطبيق الفردي لكل تنفيذ أمر kantra. ومع ذلك، من الممكن استخدام خيار --bulk
لتنفيذ أوامر تحليل kantra المتعددة مع تطبيقات مختلفة للحصول على دليل إخراج وتقرير ثابت مملوء بجميع تقارير تحليل التطبيقات.
مثال:
تحليل kantra --bulk --input=<path/to/source/A> --output=<path/to/output/ABC>تحليل kantra --bulk --input=<path/to/source/B> - -output=<path/to/output/ABC>تحليل kantra --bulk --input=<path/to/source/C> --output=<path/to/output/ABC>
يحتوي التحويل على أمرين فرعيين:
openrewrite : يسمح هذا الأمر الفرعي بتشغيل واحدة أو أكثر من وصفات OpenRewrite المتاحة على كود مصدر الإدخال.
القواعد : يسمح هذا الأمر الفرعي بتحويل قواعد Windup XML إلى تنسيق Analysis-lsp YAML.
يسمح الأمر الفرعي openrewrite بتشغيل وصفات OpenRewrite على الكود المصدري.
لتحويل التطبيقات باستخدام OpenRewrite، قم بتشغيل:
تحويل kantra openrewrite --input=<path/to/source/code> --target=<exactly_one_target_from_the_list>
يجب أن تكون قيمة الخيار --target إحدى وصفات OpenRewrite المتوفرة. لسرد جميع الوصفات المتاحة، قم بتشغيل:
تحويل kantra --list-targets
جميع الأعلام:
الأعلام: -g, --goal الهدف المستهدف (الافتراضي "dryRun") -h, --help مساعدة في إعادة الكتابة المفتوحة -i, --input مسار السلسلة إلى دليل التعليمات البرمجية المصدر للتطبيق -l, --list-targets يسرد جميع وصفات OpenRewrite المتاحة -s, --maven-settings مسار السلسلة إلى ملف إعدادات maven مخصص للاستخدام -t، --target string target وصفة مفتوحة لإعادة الكتابة للاستخدام. قم بتشغيل --list-targets للحصول على قائمة بالوصفات المعبأة.
يسمح الأمر الفرعي للقواعد بتحويل قواعد Windup XML إلى قواعد Analyst-lsp YAML باستخدام Windup-shim
لتحويل قواعد Windup XML إلى تنسيق Analysis-lsp YAML، قم بتشغيل:
قواعد تحويل kantra --input=<path/to/xmlrules> --output=<path/to/output/dir>
يجب أن تشير علامة --input إلى ملف أو دليل يحتوي على قواعد XML، ويجب أن يشير --output إلى دليل إخراج لقواعد YAML.
جميع الأعلام:
الأعلام: -h, --help مساعدة في القواعد -i، --input stringArray path إلى ملف (ملفات) قاعدة XML أو الدليل -o، - مسار سلسلة الإخراج إلى دليل الإخراج
يسمح الأمر الفرعي test بإجراء الاختبارات على قواعد YAML المكتوبة لـanalyser-lsp.
سيكون الإدخال لمشغل الاختبار عبارة عن ملف اختبار واحد أو أكثر و/أو أدلة تحتوي على اختبارات مكتوبة بلغة YAML.
اختبار kantra /path/to/a/single/tests/file.test.yaml
تتم طباعة نتائج الاختبارات على وحدة التحكم.
راجع الطرق المختلفة لتشغيل أمر الاختبار في مستند تشغيل الاختبار
أمثلة على سيناريوهات الاستخدام
استخدام خيارات الموفر
عداء اختبار لقواعد YAML
راجع قواعد سلوك الناقل هنا.