मावेन में एक बाहरी गुण फ़ाइल कैसे पढ़ें


127

क्या किसी को पता है कि मावेन में एक x.properties फ़ाइल कैसे पढ़ें। मुझे पता है कि किसी गुण फ़ाइल को पढ़ने और उस से मान सेट करने के लिए संसाधन फ़िल्टरिंग का उपयोग करने के तरीके हैं, लेकिन मैं अपने pom.xml में एक तरीका चाहता हूं:

<properties file="x.properties"> 

</properties>

इस बारे में कुछ चर्चा हुई थी: मावेन बाहरी गुण


यदि आपके पास केवल कुछ मूल्य हैं, और विभिन्न उपयोगकर्ताओं को अलग-अलग मानों की आवश्यकता होगी, तो अपने मूल्य को रखने केsettings.xml बजाय विचार करें
राएडवल्ड

जवाबों:


95

1
मुझे लगता है कि मैं जो ढूंढ रहा हूं, वह मैवेन रिपॉजिटरी में 1.0-स्नैपशॉट नहीं पा रहा था, लेकिन एक रिलीज है: mvnrepository.com/artifact/org.codehaus.mojo/… <निर्भरता> <groupId> org.codehaus .mojo </ groupId> <विरूपण साक्ष्य> गुण-मावेन-प्लगइन </ विरूपण साक्ष्य> <संस्करण> 1.0-अल्फ़ा -1 </ संस्करण> </ निर्भरता>
डॉग्नुकेम


वर्तमान संस्करण: <groupId> org.codehaus.mojo </ groupId> <विरूपण साक्ष्य- maven-plugin </ विरूपण साक्ष्य> <संस्करण> 1.0-अल्फ़ा -2-SNAPSHOT </ संस्करण> Snapshots.repository.codehaus.org
हल्लुवु ४२४२४२

2
उत्तर में लिंक @JesseGlick से नए लिंक पर अपडेट किया गया है
जॉन एडम्स

1
मुझे विंडोज पर इस प्लगइन की समस्या थी। अगर किसी को समस्या है, तो इसके बजाय कुआली को आज़माएं
fnst

56

सुझाए गए मावेन गुण प्लगइन का उपयोग करके मैं एक buildNumber.properties फ़ाइल में पढ़ने में सक्षम था जिसका उपयोग मैं अपने बिल्ड को संस्करण बनाने के लिए करता हूं।

  <build>    
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0-alpha-1</version>
        <executions>
          <execution>
            <phase>initialize</phase>
            <goals>
              <goal>read-project-properties</goal>
            </goals>
            <configuration>
              <files>
                <file>${basedir}/../project-parent/buildNumber.properties</file>
              </files>
            </configuration>
          </execution>
        </executions>
      </plugin>
   </plugins>

9
क्या आप buildNumber.properties फ़ाइल के अंदर दिखा सकते हैं? धन्यवाद!
विजेता

काम के उदाहरण के लिए धन्यवाद। हालाँकि, मुझे एक त्रुटि क्यों मिलीPlugin execution not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
वेस्टर्नगंज

जब मैं इस <प्लगइन> अनुभाग को <प्लगइन्स के तहत </ बिल्ड> के बाद और नियमित मावेन प्लगइन्स से पहले दर्ज करता हूं, तो मुझे यह त्रुटि मिल रही है:Plugin 'execution' not covered by lifecycle configuration: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-1:read-project-properties (execution: default, phase: initialize)
PraNuta

@BorisBrodski आप buildNumber.properties फ़ाइल के अंदर दिखा सकते हैं? ऐसा लगता है कि आपने कुछ विवरण हटा दिए हैं।
मुस्तफा महमूद 14

@MoustafaMahmoud मुझे क्यों? यह मेरा उत्तर नहीं है :) लेकिन मैं अनुमान लगा सकता हूं, कि यह 'my.great.product.version = 1.0.0' जैसा दिख सकता है।
बोरिस ब्रोडस्की

5

एक समान प्रश्न का यह उत्तर बताता है कि गुण प्लगइन का विस्तार कैसे किया जाए ताकि यह गुण फाइल के लिए एक दूरस्थ विवरणक का उपयोग कर सके। डिस्क्रिप्टर मूल रूप से एक गुणक फ़ाइल (गुण फ़ाइल src / main / resource के अंतर्गत शामिल है) युक्त एक जार विरूपण साक्ष्य है।

डिस्क्रिप्टर को विस्तारित गुण प्लगइन पर निर्भरता के रूप में जोड़ा जाता है इसलिए यह प्लगइन के क्लासपाथ पर है। प्लगइन गुण फ़ाइल के लिए क्लासपैथ को खोजेगा, फ़ाइल की सामग्री को गुण उदाहरण में पढ़ेगा, और उन गुणों को परियोजना के कॉन्फ़िगरेशन में लागू करेगा ताकि उनका उपयोग कहीं और किया जा सके।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.