2016-10-15 7 views
10

मैं मैं Maven आदेश mvn spring-boot:run -Dspring.profiles.active=dev उपयोग कर रहा हूँ यह काम नहीं करता और मैं mvn spring-boot:run का उपयोग कर देव प्रोफ़ाइल नहीं चुन सकते हैं application.yml, application-dev.yml और application-dev.ymlकैसे उपयोग करने के लिए स्प्रिंग बूट प्रोफाइल

  1. है। मैं इसे कैसे चुनूं?
  2. प्रलेखन java -jar XXX.jar --spring.profiles.active=dev काम करता है, और मैंने -Dspring.profiles.active=dev की कोशिश की लेकिन यह काम नहीं करता है। और मेरी परियोजना में, मैं का उपयोग java -jar XXX.jar यह चलाता है, लेकिन अगर मैं java -jar XXX.jar --spring.profiles.active=dev का उपयोग देव प्रोफाइल, सांत्वना प्रिंट इतने सारे लॉग चुनने के लिए और चेतावनी दी है कि मैं कभी नहीं किया java -jar XXX.jar देखते हैं, और मुझे बताओ APPLICATION FAILED TO START

तो कैसे दो हल करने के लिए समस्या का? धन्यवाद ~

उत्तर

0

आप application.properties (yml) जैसे here में प्रोफ़ाइल के अनुसार गुण निर्दिष्ट कर सकते हैं। फिर mvn clean spring-boot:run -Dspring.profiles.active=dev इसे सही चलाना चाहिए। यह मेरे लिए काम करता है

13

मुझे यकीन नहीं है कि मैं पूरी तरह से प्रश्न को समझता हूं लेकिन मैं वसंत बूट में प्रोफाइल के बारे में कुछ विवरण प्रदान करके जवाब देने का प्रयास करूंगा।

अपने # 1 उदाहरण के लिए, दस्तावेज़ों के अनुसार आप -Drun.profiles का उपयोग कर स्प्रिंग बूट मेवेन प्लगइन का उपयोग कर प्रोफ़ाइल का चयन कर सकते हैं।

mvn spring-boot:run -Drun.profiles=dev 

http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html

अपने # 2 उदाहरण से, आप जार के नाम के बाद सक्रिय प्रोफ़ाइल परिभाषित कर रहे हैं। आपके द्वारा चलाए जा रहे जार के नाम से पहले आपको JVM तर्क प्रदान करना होगा।

java -jar -Dspring.profiles.active=dev XXX.jar 

सामान्य जानकारी:

आप उल्लेख है कि आप दोनों एक application.yml और एक application-dev.yml है। dev प्रोफ़ाइल के साथ चलने से वास्तव में दोनों कॉन्फ़िगरेशन फ़ाइलें लोड हो जाएंगी। application-dev.yml से मान application.yml द्वारा प्रदान किए गए समान मानों को ओवरराइड करेंगे लेकिन yml फ़ाइलों दोनों के मान लोड हो जाएंगे।

सक्रिय प्रोफ़ाइल को परिभाषित करने के कई तरीके भी हैं।

आप अपने जार चलाने के दौरान -Dspring.profiles.active का उपयोग करके उन्हें परिभाषित कर सकते हैं। आप SPRING_PROFILES_ACTIVE पर्यावरण चर या spring.profiles.active सिस्टम प्रॉपर्टी का उपयोग करके प्रोफ़ाइल भी सेट कर सकते हैं।

अधिक जानकारी यहां पाया जा सकता है: http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-set-active-spring-profiles

+0

धन्यवाद, जिस तरह से आप gived ठीक होना चाहिए, लेकिन मैं कहता हूँ के रूप में मैं का उपयोग 'जावा जार XXX.jar --spring.profiles.active = dev' को देव प्रोफाइल का चयन करें, कंसोल प्रिंट इतने सारे लॉग और चेतावनी देते हैं कि मैंने कभी भी 'जावा -jar XXX.jar' का उपयोग नहीं किया है, और मुझे बताएं' आवेदन शुरू करने में विफल 'लेकिन सफलता का निर्माण करें। 'mvn spring-boot: run -Drun.profiles = dev' और 'java -jar -Dspring.profiles.active = dev XXX.jar' समान है,' mvn spring-boot: run' और 'java -jar' चला सकते हैं well.i गलती से डीबग मोड खोलें ??? – twogoods

+0

ऑर्डर गलत है, 'जावा -jar XXX.jar --spring.profiles.active = dev' ** ** ** प्रोफाइल को dev पर सेट नहीं करता है। आपको 'जावा -jar -Dspring.profiles.active = dev XXX का उपयोग करने की आवश्यकता है।जार' – francis

+0

मैंने 'जावा -jar -Dspring.profiles.active = dev XXX.jar' कंसोल प्रिंट कई लॉग, चेतावनी और डीबग का उपयोग किया है, और शुरू करने में विफल रहा है। 'जावा-jar XXX.jar --spring.profiles.active = dev' यह ऑर्डर गलत है लेकिन कंसोल कई लॉग, चेतावनी और डीबग प्रिंट भी करता है, जो' जावा -jar -Dspring.profiles.active = dev XXX 'के समान है। jar'.and मैंने दस्तावेज़ों में क्विकस्टार्ट आज़माया है, दोनों ऑर्डर ठीक है प्रोफ़ाइल का चयन कर सकते हैं। springboot संस्करण 1.4.1 – twogoods