جافا:كيفية التواصل بين معالج التعليقات التوضيحية ومشروع آخر؟
-
06-07-2019 - |
سؤال
لدي الخاصة معالج التعليقات التوضيحية (دعنا نسميها MyProcessor) ومشروع (دعنا نسميها MyProject) الذي يستخدم المعالج عن طريق المرور -processor
ل javac
.
الآن أحتاج إلى MyProcessor لإنتاج بعض المخرجات وإتاحتها لـ MyProject.
لدي الخيارات التالية (والمشاكل):
اسمح لـ MyProcessor بكتابة ملف إلى المسار المحدد بواسطة الخاصية
user.dir
.
مشكلة: من وجهة نظر MyProcessor،user.dir
هو دائمًا مسار منزلي، وليس مسار MyProject.قم بتمرير الدليل الحالي لـ MyProject إلى MyProcessor باستخدام
javac
'س-A
خيار.
مشكلة: إنه مسار قبيح مشفر:/some/path/to/MyProject/
.اسمح لـ MyProcessor بإنشاء بعض الملفات المصدر، والتي سيتم تجميعها بعد ذلك بواسطة
javac
مع MyProject، بحيث يمكن لـ MyProject الرجوع إلى هذه الفئة المترجمة واسترداد البيانات منها.
مشكلة: إنها معقدة للغاية بالنسبة لمثل هذه المهمة السهلة (؟).ما هي الخيارات الأخرى هناك؟
هل يمكن لأي شخص أن يقترح كيفية المتابعة؟
المحلول
Processor.init()
يتم استدعاء الطريقة (التي قمت بتنفيذها) باستخدام بيئة المعالجة كمعلمة والتي بدورها لديها getFiler()
طريقة إرجاع أ المدون مثال.
يجب أن تستخدم createResource()
طريقة Filer
(بافتراض أن المخرجات التي يتم إنشاؤها ليست فئة ولا مصدر؛وإلا استخدم المناسب create
طريقة لذلك) واكتب مخرجاتك لأي منهما فصل أو مصدر المواقع (ربما يكون الخيار الأول هو الأفضل، لكن ذلك يعتمد على ما تفعله).يمكن تجاوز كلاهما عبر مفاتيح تبديل سطر الأوامر إذا لزم الأمر، ولكنهما محددان جيدًا حيث سيتم استخدامهما في عملية الإنشاء.