2015-05-18 12 views
9

जावा और Maven का उपयोग, मैवेन गुणों के लिए सम्मेलन क्या है?मैवेन गुणों के लिए सम्मेलन: "डॉट केस" या "ऊंट केस"?

मैं यहां 2 उदाहरण पोस्ट कर रहा हूं, जिनमें से दोनों व्यापक रूप से उपयोग में हैं। सम्मेलन के अनुसार कौन सा सही है?

उदाहरण A

<properties> 
    <hibernate.version>4.3.8.Final</hibernate.version> 
    <hsqldb.version>2.3.2</hsqldb.version> 
    <log4j2.version>2.0.2</log4j2.version> 
</properties> 

उदाहरण B

<properties> 
    <hibernateVersion>4.3.8.Final</hibernateVersion> 
    <hsqldbVersion>2.3.2</hsqldbVersion> 
    <log4j2Version>2.0.2</log4j2Version> 
</properties> 

संपादित करें:

यहाँ एक Maven Properties Guide करने के लिए एक कड़ी है। मेवेन गुणों के कुछ उदाहरणों में ${project.build.directory} (डॉट केस) और ${project.build.outputDirectory} (दोनों बिंदु केस और ऊंट मामले) शामिल हैं।

और आधिकारिक दस्तावेज़ीकरण Maven POM Reference<someVar> (ऊंट केस) नामक एक उदाहरण संपत्ति का सुझाव देता है।

+0

http://programmers.stackexchange.com – Bohemian

+0

पर पूछ हालांकि यह एक्सएमएल टैग नाम में CamelCase का उपयोग करने, परियोजनाओं मैं पर काम किया है के सभी बहुत आम है की कोशिश करो आप जो (गलत तरीके से) कॉल कर रहे हैं उसका उपयोग करें के मामले (snake_case_is_like_this)। यह शायद वास्तविक '.properties' फ़ाइल में से है, इसलिए आप अपने गुणों के लिए एक उपसर्ग के रूप में जावा पैकेज नाम का उपयोग करेंगे, इसलिए आपके पास 'com.mydomain.mypackage.myclass.myproperty' प्रॉपर्टी कुंजी के रूप में होगा। – beerbajay

+0

@beerbajay इनपुट के लिए धन्यवाद। कैमेलकेस के साथ समस्या यह है कि यह कुछ प्रोजेक्ट में निर्मित है, जैसे 'project.build.sourceEncoding' और 'project.version' – vikingsteve

उत्तर

10

रिलीज दस्तावेज पढ़ने के बाद, इसका उत्तर सभी के साथ स्पष्ट था।

dot.case और camelCase के बीच स्पष्ट संघर्ष है कि एक पोम जबकि अन्य चर नामकरण के लिए प्रयोग किया जाता है में heirarchical संरचना के संदर्भ के लिए इस्तेमाल किया जाता है।

उदाहरण के लिए, हमें ${project.build.outputDirectory} देखें। जहां तक ​​मैं समझ सकता हूं, डॉट नोटेशन, पोम संरचना को संदर्भित करता है जहां चर स्थित है, जबकि परिवर्तनीय नाम स्वयं ही ऊंट के मामले में है।

<project> 
    <build> 
    <outputDirectory>/opt/foo</outputDirectory> 
    </build> 
</project> 

दूसरे शब्दों में, Maven में चर नामकरण के लिए सम्मेलन वास्तव में ऊंट मामले है, नहीं ${project.version}, ${project.build.outputDirectory}, और इतने पर, और उदाहरण की तरह पोम ढांचे के भीतर गुण/चर के संदर्भ के साथ भ्रमित होने की बी परंपरा के अनुसार सबसे सही होगा:

<properties> 
    <hibernateVersion>4.3.8.Final</hibernateVersion> 
    <hsqldbVersion>2.3.2</hsqldbVersion> 
    <log4j2Version>2.0.2</log4j2Version> 
</properties> 
संबंधित मुद्दे