मावेन में, क्या 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 के मूल्य को दिखाएगा जब तक कि आपने ओवरराइट नहीं किया है।