2012-08-22 11 views
9

मैं के संदर्भ में हूँ "Maven: पूरा संदर्भ" और प्रोफाइल के बारे में विशेष रूप से खंड जो <profile... टैग के लिए यहां के भीतर एक <properties... टैग का उपयोग दस्तावेजों: see hereMaven भीतर गुण टैग का उपयोग करना प्रोफाइल

<profile> 
      <id>development</id> 
      <activation> 
       <activeByDefault>true</activeByDefault> 
       <property> 
        <name>environment.type</name> 
        <value>dev</value> 
       </property> 
      </activation> 
      <properties> 
       <database.driverClassName>com.mysql.jdbc.Driver</database.driverClassName> 
       <database.url> 
        jdbc:mysql://localhost:3306/app_dev 
       </database.url> 
       <database.user>development_user</database.user> 
       <database.password>development_password</database.password> 
      </properties> 
     </profile> 

क्या मैं के बारे में क्या होता है जब mvn install -Denvironment.type=dev आदेश चला जाता है यकीन नहीं है:

  • यह एक .properties फ़ाइल बनाने जाएगा?
  • यदि डेम में परीक्षण किया जाता है तो उदाहरण के लिए टोमकैट (उदाहरण के लिए) व्यक्तिगत गुणों को कैसे और कहां पढ़ा जाएगा?
+0

मैवेन और वसंत के माध्यम से यहां श्रृंखला का पालन करने की कोशिश कर रहा है और यह वास्तव में प्रश्न और उत्तर की आवश्यकता है! अच्छा है! –

उत्तर

17

यह एक .properties फ़ाइल बनाने जाएगा?

नहीं, यह नहीं होगा। यह मैवेन द्वारा उपयोग की जाने वाली गुणों को निर्धारित करेगा। यह है, mvn install -Denvironment.type=development मैवेन 'database_user' चर के लिए 'development_user' मान का उपयोग करेगा (जिसे आप $ {डेटाबेस.user} के रूप में पोम्स और फ़िल्टर किए गए संसाधनों में उपयोग कर सकते हैं)।

यदि डेम में परीक्षण किया जाता है तो उदाहरण के लिए टॉमकैट (उदाहरण के लिए) व्यक्तिगत गुणों को कैसे और कहाँ नहीं पढ़ा जाएगा?

बात यह है कि प्रोफ़ाइल (Properties.files) के आधार पर उन संसाधनों को फ़िल्टर (और संशोधित) करने के लिए मैवेन को बताना है।

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 
</build> 

फिर Maven चर का उपयोग करने के लिए अपने गुण फ़ाइलों को संशोधित:

तो, पहले आप Maven कहने के लिए संसाधनों को फिल्टर करने के लिए है। उदाहरण के लिए, आपकी डीबी गुण फ़ाइल इस तरह दिखेगी:

database.driverClassName=${database.driverClassName} 
database.url=${database.url} 
#... 
+0

मैंने पाया [डॉक्स] (http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html) इस उत्तर को पढ़ने के बाद सहायक - ऐसा लगता है कि 'फ़िल्टरिंग' मूल रूप से मैवेन के माध्यम से जाता है और $ {somename} को किसी भी फ़ाइल ** में निर्माण ** पर इसके मूल्यों के साथ प्रतिस्थापित करता है। आप इसे बिल्ड आउटपुट में देख सकते हैं। महान जवाब - वास्तव में मेरे लिए अंतराल में भर गया। –

संबंधित मुद्दे