प्रौद्योगिकी साझेदारी

जावा परियोजनानां कृते भिन्नानि वातावरणचराः सिद्धान्ताः च कथं विन्यस्तुं शक्यन्ते

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

भिन्न-भिन्न-प्रोफाइल-विन्यस्तं कथं करणीयम्

सर्वप्रथमं जावा-प्रकल्पाय भिन्न-भिन्न-वातावरण-विन्यासानां आवश्यकता भवति यदा पैकेजिंग्-करणं भवति तदा तत्सम्बद्धानां विन्यासानां स्वयमेव उपयोगः भवति । अतः, कथं तत् प्राप्तुं शक्यते ?

स्वस्य Spring Boot परियोजनायाः src/main/resources निर्देशिकायां application.yml सञ्चिकां रचयन्तु अथवा योजयन्तु । अत्रैव Spring Boot पूर्वनिर्धारितरूपेण विन्याससञ्चिकाः अन्वेषयति । एषा सञ्चिका सामान्यविन्यासान् योजयितुं शक्नोति ।

ततः, भवान् तस्मिन् एव निर्देशिकायां application-test.yml, application-prod.yml इत्यादीनां सञ्चिकानां निर्माणमपि कर्तुं शक्नोति Spring Boot स्वयमेव एताः प्रोफाइल-विशिष्टविन्याससञ्चिकाः ज्ञास्यति । एतेषु सञ्चिकासु भिन्न-भिन्न-वातावरणानां कृते मापदण्डान् परिभाषितुं शक्नुवन्ति, यथा दत्तांशकोश-सङ्केताः, redis cache-सङ्केताः इत्यादयः ।
अर्थात् src/main/resources निर्देशिकायां एतादृशाः अनेकाः सञ्चिकाः भवितुम् अर्हन्ति ।

application.yml
application-prod.yml
application-test.yml
  • 1
  • 2
  • 3

ततः, समानविन्यासयुक्तौ चरद्वयं घोषयितुं application-test.yml तथा application-prod.yml इत्येतयोः उपयोगं कर्तुं शक्नुवन्ति ।उदाहरणतया
अनुप्रयोग-परीक्षा.yml:

mysql:
  url: https://xx.test.com/mysql
  • 1
  • 2

अनुप्रयोग-prod.yml:

mysql:
  url: https://xx.online.com/mysql
  • 1
  • 2

जावा कोड् मध्ये, भवान् एतत् url गतिशीलरूपेण उपयोक्तुं शक्नोति:

    @Value("${mysql.url}")
    protected String mysqlUrl;
  • 1
  • 2

परिपूर्णम्‌।

अतः, यदा प्रणाली चाल्यते तदा स्वयमेव तत्सम्बद्धं profile-specific.yml सञ्चिकां कथं उपयोक्तव्यम्?कृपया अधः पश्यन्तु

प्रोफाइल स्वचालित स्विचिंग् इत्यस्य सिद्धान्तः

बाह्यजालतः स्तरं स्तरं परियोजनां प्रति वातावरणचराः कथं पारिताः भवन्ति इति पश्यामः ।
प्रथमं जावा परियोजना प्रायः docker द्वारा संकुलितं भवति । अतः, docker इत्यस्मात् आरभ्यताम् :

  1. Docker packaging आदेशः, वातावरणमापदण्डैः सह:
docker build -f assistant-web-api/qke/Dockerfile -t docker-registry.qiyi.virtual/mbd-ai/assistant-web-api-test:$tag . --build-arg dc_env=test
  • 1

मुख्यशब्दाः, २.build-arg , एकं पैरामीटर् सेट् कुर्वन्तु, dc_env=test

  1. Docker सञ्चिका, घोषयतुdc_env, mvn आदेशाय च प्रयुक्तम्
ARG dc_env
...
RUN mvn -T 8 -DdisableRpm=true -pl '!assistant-web-manager' clean package -Dmaven.test.skip=true -P${dc_env}
  • 1
  • 2
  • 3

ध्यानं कुर्वन्तु यत् -P इत्यस्य अर्थः प्रोफाइल सेट् करणं भवति

  1. pom.xml, भिन्नानि वातावरणानि विन्यस्यताम्

पूर्वपदे mvn आदेशः -P इति योजितवान् । अवश्यं marven विन्याससञ्चिकायां अस्ति, यत् pom.xml अस्ति ।

<profiles>
        <profile>
            <id>test</id>
            <properties>
                <profile.active>test</profile.active>
                <log.env>test</log.env>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profile.active>prod</profile.active>
                <log.env>prod</log.env>
            </properties>
        </profile>
    </profiles>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

उपरि २ वातावरणचराः योजिताः सन्ति ।प्रत्येकस्य चरस्य कृते गुणाः सेट् भवन्ति अर्थात् ।profile.active
एतत् मूल्यं कुत्र उपयोक्तुं शक्यते ?

मुख्य application.yml सञ्चिकायां तस्य उपयोगं कुर्वन्तु!

server:
  profiles:
    active: @profile.active@
  • 1
  • 2
  • 3

पूर्वपदे profile.active चरस्य मूल्यस्य आधारेण कस्य Profile इत्यस्य उपयोगः करणीयः इति परिभाषयन्तु ।

ततः परं docker संकुलात् परिभाषिताः चराः मुख्य yml सञ्चिकायां पारिताः । अस्मिन् सञ्चिकायां, यत्किमपि मूल्यं server.profiles.active अस्ति, तत् कस्य उप-yml विन्यासस्य उपयोगः भविष्यति । यथा, यदि परीक्षणं भवति तर्हि application-test.yml इत्यस्य विन्यासः लोड् भविष्यति! ! !

विकासवातावरणे वातावरणं कथं परिवर्तयितव्यम्

  1. प्रथमं marven प्रथमं समन्वययति । समन्वयनानन्तरं एकं वातावरणं परीक्ष्यताम् ।
    अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

  2. तदनन्तरं स्थानीयरूपेण संकलितं संकुलं च कुर्वन्तु, -P इत्यस्य माध्यमेन च वातावरणचरं निर्दिशन्तु:
    अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

  3. अन्ते, चालयितुं, अधोलिखितस्य चित्रस्य उपरि दक्षिणकोणे क्लिक् कुर्वन्तु, Active Profile मध्ये, तत्सम्बद्धानि वातावरणचराः पूरयन्तु, यथा test
    अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

  4. अन्ते भवान् Run इत्यत्र क्लिक् कर्तुं शक्नोति!