تم إنشاء هذا التطبيق باستخدام JHipster 8.7.3، ويمكنك العثور على الوثائق والمساعدة على https://www.jhipster.tech/documentation-archive/v8.7.3.
العقدة مطلوبة للإنشاء وموصى بها للتطوير. يتم إنشاء package.json
دائمًا للحصول على تجربة تطوير أفضل باستخدام الخطافات والنصوص البرمجية الأكثر جمالًا، وما إلى ذلك.
في جذر المشروع، يقوم JHipster بإنشاء ملفات تكوين لأدوات مثل git وprettier وeslint وhusky وغيرها من الأدوات المعروفة ويمكنك العثور على مراجع على الويب.
تتبع البنية /src/*
بنية Java الافتراضية.
.yo-rc.json
- ملف تكوين Yeoman يتم تخزين تكوين JHipster في هذا الملف على مفتاح generator-jhipster
. قد تجد generator-jhipster-*
لتكوين مخططات محددة.
.yo-resolve
(اختياري) - محلل تعارض Yeoman يسمح باستخدام إجراء محدد عند العثور على تعارضات وتخطي مطالبات الملفات التي تطابق النمط. يجب أن يتطابق كل سطر مع [pattern] [action]
مع أن يكون النمط عبارة عن نمط Minimatch ويكون الإجراء واحدًا من التخطي (الافتراضي إذا تم حذفه) أو القوة. الأسطر التي تبدأ بـ #
تعتبر تعليقات ويتم تجاهلها.
.jhipster/*.json
- ملفات تكوين كيان JHipster
npmw
- غلاف لاستخدام npm المثبت محليًا. يقوم JHipster بتثبيت Node وnpm محليًا باستخدام أداة الإنشاء افتراضيًا. يتأكد هذا المجمع من تثبيت npm محليًا ويستخدمه لتجنب بعض الاختلافات التي قد تسببها الإصدارات المختلفة. باستخدام ./npmw
بدلاً من npm
التقليدي، يمكنك تكوين بيئة بدون عقدة لتطوير تطبيقك أو اختباره.
/src/main/docker
- تكوينات Docker للتطبيق والخدمات التي يعتمد عليها التطبيق
سيقوم نظام البناء تلقائيًا بتثبيت الإصدار الموصى به من Node وnpm.
نحن نقدم المجمع لإطلاق npm. ستحتاج فقط إلى تشغيل هذا الأمر عندما تتغير التبعيات في package.json.
./npmw install
نحن نستخدم البرامج النصية npm وAngular CLI مع Webpack كنظام بناء خاص بنا.
قم بتشغيل الأوامر التالية في محطتين منفصلتين لإنشاء تجربة تطوير ممتعة حيث يتم تحديث المتصفح تلقائيًا عند تغيير الملفات على محرك الأقراص الثابتة لديك.
./mvnw
./npmw start
يُستخدم Npm أيضًا لإدارة تبعيات CSS وJavaScript المستخدمة في هذا التطبيق. يمكنك ترقية التبعيات عن طريق تحديد إصدار أحدث في package.json. يمكنك أيضًا تشغيل ./npmw update
./npmw install
لإدارة التبعيات. أضف علامة help
في أي أمر لترى كيف يمكنك استخدامها. على سبيل المثال، ./npmw help update
.
سيقوم أمر ./npmw run
بسرد جميع البرامج النصية المتاحة للتشغيل لهذا المشروع.
يأتي JHipster مزودًا بدعم PWA (تطبيق الويب التقدمي)، ويتم إيقاف تشغيله افتراضيًا. أحد المكونات الرئيسية لـ PWA هو عامل الخدمة.
يتم تعطيل رمز تهيئة عامل الخدمة بشكل افتراضي. لتمكينه، قم بإلغاء تعليق التعليمة البرمجية التالية في src/main/webapp/app/app.config.ts
:
ServiceWorkerModule . register ( 'ngsw-worker.js' , { enabled : false } ) ,
على سبيل المثال، لإضافة مكتبة Leaflet باعتبارها تبعية وقت تشغيل لتطبيقك، يمكنك تشغيل الأمر التالي:
./npmw install --save --save-exact leaflet
للاستفادة من تعريفات أنواع TypeScript من مستودع DefinitelyTyped قيد التطوير، يمكنك تشغيل الأمر التالي:
./npmw install --save-dev --save-exact @types/leaflet
بعد ذلك، يمكنك استيراد ملفات JS وCSS المحددة في تعليمات تثبيت المكتبة حتى يعرف Webpack عنها: تحرير ملف src/main/webapp/app/app.config.ts:
import 'leaflet/dist/leaflet.js';
تحرير ملف src/main/webapp/content/scss/vendor.scss:
@import 'leaflet/dist/leaflet.css';
ملحوظة: لا يزال هناك بعض الأشياء الأخرى التي يتعين القيام بها من أجل Leaflet والتي لن نذكرها بالتفصيل هنا.
لمزيد من الإرشادات حول كيفية التطوير باستخدام JHipster، قم بإلقاء نظرة على استخدام JHipster في التطوير.
يمكنك أيضًا استخدام Angular CLI لإنشاء بعض أكواد العميل المخصصة.
على سبيل المثال، الأمر التالي:
ng generate component my-component
سيولد عدد قليل من الملفات:
create src/main/webapp/app/my-component/my-component.component.html
create src/main/webapp/app/my-component/my-component.component.ts
update src/main/webapp/app/app.config.ts
لإنشاء الجرة النهائية وتحسين تطبيق jhipsterSampleApplication للإنتاج، قم بتشغيل:
./mvnw -Pprod clean verify
سيؤدي هذا إلى تسلسل ملفات CSS وJavaScript الخاصة بالعميل وتصغيرها. سيقوم أيضًا بتعديل index.html
بحيث يشير إلى هذه الملفات الجديدة. للتأكد من أن كل شيء يعمل، قم بتشغيل:
java -jar target/*.jar
ثم انتقل إلى http://localhost:8080 في متصفحك.
راجع استخدام JHipster في الإنتاج لمزيد من التفاصيل.
لحزم تطبيقك كحرب لنشره على خادم التطبيقات، قم بتشغيل:
./mvnw -Pprod,war clean verify
يمكن أن يساعدك مركز التحكم JHipster في إدارة تطبيقك (تطبيقاتك) والتحكم فيها. يمكنك بدء خادم مركز التحكم المحلي (يمكن الوصول إليه على http://localhost:7419) باستخدام:
docker compose -f src/main/docker/jhipster-control-center.yml up
لبدء اختبارات التطبيق الخاص بك، قم بتشغيل:
./mvnw verify
يتم إجراء اختبارات الأداء بواسطة جاتلينج ويتم كتابتها بلغة سكالا. إنها موجودة في src/test/Java/gatling/simulations.
يمكنك تنفيذ جميع اختبارات جاتلينج باستخدام
./mvnw gatling:test
يتم تشغيل اختبارات الوحدة بواسطة Jest. إنها موجودة في src/test/javascript/ ويمكن تشغيلها باستخدام:
./npmw test
يتم تشغيل الاختبارات الشاملة لواجهة المستخدم بواسطة Cypress. إنها موجودة في src/test/javascript/cypress ويمكن تشغيلها عن طريق بدء Spring Boot في محطة واحدة ( ./mvnw spring-boot:run
) وتشغيل الاختبارات ( ./npmw run e2e
) في محطة ثانية.
يمكنك تنفيذ عمليات تدقيق Lighthouse الآلية باستخدام cypress-audit عن طريق تشغيل ./npmw run e2e:cypress:audits
. يجب عليك إجراء عمليات التدقيق فقط عندما يكون التطبيق الخاص بك مُرفقًا بملف تعريف الإنتاج. يتم إنشاء تقرير المنارة في target/cypress/lhreport.html
يستخدم السونار لتحليل جودة الكود. يمكنك بدء خادم Sonar محلي (يمكن الوصول إليه على http://localhost:9001) باستخدام:
docker compose -f src/main/docker/sonar.yml up -d
ملاحظة: لقد قمنا بإيقاف تشغيل إعادة توجيه المصادقة القسرية لواجهة المستخدم في src/main/docker/sonar.yml للحصول على تجربة خارج الصندوق أثناء تجربة SonarQube، وفي حالات الاستخدام الحقيقي، قم بتشغيلها مرة أخرى.
يمكنك إجراء تحليل السونار باستخدام ماسح السونار أو باستخدام البرنامج الإضافي المخضرم.
ثم قم بإجراء تحليل السونار:
./mvnw -Pprod clean verify sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
إذا كنت بحاجة إلى إعادة تشغيل مرحلة السونار، فيرجى التأكد من تحديد مرحلة initialize
على الأقل حيث يتم تحميل خصائص السونار من ملف sonar-project.properties.
./mvnw initialize sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
بالإضافة إلى ذلك، بدلاً من تمرير sonar.password
و sonar.login
كوسائط CLI، يمكن تكوين هذه المعلمات من sonar-project.properties كما هو موضح أدناه:
sonar.login=admin
sonar.password=admin
لمزيد من المعلومات، راجع صفحة جودة الكود.
يقوم JHipster بإنشاء عدد من ملفات تكوين Docker Compose في المجلد src/main/docker/ لتشغيل خدمات الطرف الثالث المطلوبة.
على سبيل المثال، لبدء الخدمات المطلوبة في حاويات Docker، قم بتشغيل:
docker compose -f src/main/docker/services.yml up -d
لإيقاف الحاويات وإزالتها، قم بتشغيل:
docker compose -f src/main/docker/services.yml down
يتم تمكين Spring Docker Compose Integration بشكل افتراضي. من الممكن تعطيله في application.yml:
spring :
...
docker :
compose :
enabled : false
يمكنك أيضًا إرساء تطبيقك بالكامل وجميع الخدمات التي يعتمد عليها. لتحقيق ذلك، قم أولاً بإنشاء صورة Docker لتطبيقك عن طريق تشغيل:
npm run java:docker
أو قم بإنشاء صورة Arm64 Docker عند استخدام نظام تشغيل معالج Arm64 مثل MacOS مع تشغيل عائلة المعالج M1:
npm run java:docker:arm64
ثم قم بتشغيل:
docker compose -f src/main/docker/app.yml up -d
لمزيد من المعلومات، راجع استخدام Docker وDocker-Compose، تحتوي هذه الصفحة أيضًا على معلومات حول المولد الفرعي Docker Compose ( jhipster docker-compose
)، والذي يمكنه إنشاء تكوينات Docker لتطبيق واحد أو أكثر من تطبيقات JHipster.
لتكوين CI لمشروعك، قم بتشغيل المولد الفرعي ci-cd ( jhipster ci-cd
)، وهذا سيتيح لك إنشاء ملفات التكوين لعدد من أنظمة التكامل المستمر. راجع صفحة إعداد التكامل المستمر لمزيد من المعلومات.