मावेन में, क्या project.build.directoryसंदर्भित करता है? मैं थोड़ा उलझन में हूँ, क्या यह स्रोत कोड निर्देशिका या मावेन परियोजना में लक्ष्य निर्देशिका का संदर्भ देता है?
मावेन में, क्या project.build.directoryसंदर्भित करता है? मैं थोड़ा उलझन में हूँ, क्या यह स्रोत कोड निर्देशिका या मावेन परियोजना में लक्ष्य निर्देशिका का संदर्भ देता है?
जवाबों:
आप उन मावेन गुणों को सुपर पोम में पा सकते हैं।
आप यहाँ जार पाते हैं:
${M2_HOME}/lib/maven-model-builder-3.0.3.jar
जार को 7-ज़िप या किसी अन्य अभिलेखागार से खोलें (या जार टूल का उपयोग करें)।
पर जाए
org/apache/maven/model
वहां तुम पाओगे pom-4.0.0.xml।
इसमें उन सभी "शॉर्ट कट्स" शामिल हैं:
<project>
...
<build>
<directory>${project.basedir}/target</directory>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<finalName>${project.artifactId}-${project.version}</finalName>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
<scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
</resource>
</resources>
<testResources>
<testResource>
<directory>${project.basedir}/src/test/resources</directory>
</testResource>
</testResources>
...
</build>
...
</project>
कुछ पैरवी के बाद मैं एक लिंकpom-4.0.0.xml जोड़ रहा हूं । यह आपको स्थानीय जार फ़ाइल को खोलने के बिना गुणों को देखने की अनुमति देता है।
project.build.directoryउदाहरण के लिए डिफ़ॉल्ट मान नहीं दिखाता है । यही मैं दिखाना चाहता था।
यह आपके शीर्ष स्तर के आउटपुट डायरेक्टरी की ओर इशारा करता है (जो डिफ़ॉल्ट रूप से है target):
संपादित करें: जैसा कि बताया गया है, कोडहॉस अब दुख की बात है। आप इन गुणों के बारे में विवरण सोनाटाइप से यहाँ पा सकते हैं:
यदि आप कभी भी मावेन में आउटपुट निर्देशिकाओं को संदर्भित करने का प्रयास कर रहे हैं, तो आपको कभी भी लक्ष्य / कक्षाओं जैसे शाब्दिक मूल्य का उपयोग नहीं करना चाहिए । इसके बजाय आपको इन निर्देशिकाओं को संदर्भित करने के लिए संपत्ति संदर्भ का उपयोग करना चाहिए।
project.build.sourceDirectory project.build.scriptSourceDirectory project.build.testSourceDirectory project.build.outputDirectory project.build.testOutputDirectory project.build.directory
sourceDirectory,scriptSourceDirectoryऔरtestSourceDirectoryपरियोजना के लिए स्रोत निर्देशिकाओं तक पहुँच प्रदान करते हैं।outputDirectoryऔरtestOutputDirectoryनिर्देशिकाओं तक पहुंच प्रदान करें जहां मावेन बायटेकोड या अन्य बिल्ड आउटपुट डालने जा रहा है।directoryउस निर्देशिका को संदर्भित करता है जिसमें ये सभी आउटपुट निर्देशिकाएं होती हैं।
project.base.dirपरियोजना की जड़ निर्देशिका को इंगित करता है जहां pom.xml है। यही कारण है कि उसके बाद, project.build.directoryमावेन द्वारा परिभाषित किया गया है ${project.basedir}/target। धन्यवाद दोस्तों, मुझे यह नहीं पता था।
${project.build.sourceDirectory}इंगित करता है project-A/src/main/java, ${project.build.scriptSourceDirectory}इंगित करता है project-A/src/main/scripts, ${project.build.testSourceDirectory}इंगित करता है project-A/src/test/java, ${project.build.directory}इंगित करता है project-A/target, ${project.build.directory}इंगित करता है project-A/target/classes, को ${project.build.testOutputDirectory}इंगित करता है project-A/target/test-classes।
आप अपने प्रोजेक्ट में मूल्य के लिए सबसे नवीनतम उत्तर पा सकते हैं
mvn3 help:effective-pom
आदेश और <build> ... <directory>प्रभावी-पोम में परिणाम उर्फ में टैग का मान ढूंढें । यह सुपर POM के मूल्य को दिखाएगा जब तक कि आपने ओवरराइट नहीं किया है।