মাভেন প্রজেক্ট.বিল্ড.ডাইরেক্টরি


172

মাভেনে, কী project.build.directoryবোঝায়? আমি কিছুটা বিভ্রান্ত হয়ে পড়েছি, এটি কি মাভেন প্রকল্পের উত্স কোড ডিরেক্টরি বা লক্ষ্য ডিরেক্টরিটি উল্লেখ করে?

উত্তর:


224

সুপার পোমে আপনি এই খাঁটি বৈশিষ্ট্যগুলি খুঁজে পেতে পারেন।

আপনি এখানে বয়াম খুঁজে পাবেন:

${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 যুক্ত করছি । এটি আপনাকে স্থানীয় জার ফাইলটি না খোলায় বৈশিষ্ট্যগুলি দেখতে দেয়।


আমি ফাইলের পরিবর্তে একটি অনলাইন রেফারেন্স প্রস্তাব করব যা জারে সংরক্ষণাগারভুক্ত রয়েছে। এটি: maven.apache.org/ref/3.0.3/maven-model/maven.html
খামারবায়েস

18
@khmarbaise ভাল এটি দুর্দান্ত তবে এটি আপনাকে project.build.directoryউদাহরণস্বরূপ ডিফল্ট মানটি দেখায় না । এটাই আমি দেখাতে চেয়েছিলাম।
মাবা

গিথুব আয়না একটি নির্দিষ্ট লাইন নম্বরটির সাথে লিঙ্ক করতে দেয়: github.com/apache/maven-3/blob/trunk/maven-model-builder/src/… অন্যথায়, এটি এসএনএন-
মার্টিন এলিস

@ মার্টিনএলিস ঠিক আছে, আমি আমার উত্তরটিও একটি লিঙ্কের সাথে আপডেট করেছি। ধন্যবাদ!
মাবা

আমি github.com/apache/mavenমাভেন রেপোর উত্সটি অনুসন্ধান করেছি । অপেক্ষাকৃত ছোট সংখ্যক হিট (9)। কিছুই সেই সম্পত্তি সরাসরি সেট করে না। এটা কোথাও সেট করা আছে! এই ইউআরএলটি আমি দেখেছি এমন অনুসন্ধানের ফলাফলগুলি দেখায়: github.com/apache/maven/…
প্যাটস

44

এটি আপনার শীর্ষ স্তরের আউটপুট ডিরেক্টরিকে নির্দেশ করে (যা ডিফল্টরূপে হয় target):

https://web.archive.org/web/20150527103929/http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide

সম্পাদনা: যেমনটি উল্লেখ করা হয়েছে, কোডহাউস এখন দুঃখের সাথে অবনতি হয়েছে। আপনি এখানে সোন্যাটাইপ থেকে এই সম্পত্তি সম্পর্কে বিশদ জানতে পারেন:

http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html#resource-filtering-sect-project-properties

আপনি যদি কখনও মাভেনের আউটপুট ডিরেক্টরিগুলি রেফারেন্স করার চেষ্টা করছেন, আপনার কখনই টার্গেট / ক্লাসের মতো আক্ষরিক মান ব্যবহার করা উচিত নয় । পরিবর্তে এই ডিরেক্টরিগুলি উল্লেখ করার জন্য আপনার সম্পত্তি রেফারেন্স ব্যবহার করা উচিত।

    project.build.sourceDirectory
    project.build.scriptSourceDirectory
    project.build.testSourceDirectory
    project.build.outputDirectory
    project.build.testOutputDirectory
    project.build.directory

sourceDirectory, scriptSourceDirectoryএবং testSourceDirectoryপ্রকল্পের উত্স ডিরেক্টরিতে অ্যাক্সেস সরবরাহ করে। outputDirectoryএবং testOutputDirectoryমাইভেন যে ডিরেক্টরিগুলিতে বাইকোড বা অন্য বিল্ড আউটপুট স্থাপন করতে চলেছে সেখানে অ্যাক্সেস সরবরাহ করে। directoryডিরেক্টরিটি বোঝায় যা এই সমস্ত আউটপুট ডিরেক্টরি রয়েছে।


1
Codehause.org হোস্টিংটি সমাপ্ত করা হয়েছে এবং এই লিঙ্কটি আর কাজ করে না।
বার্টোস ফিরিন

হ্যাঁ, সত্য এবং দুঃখজনক। আমি একটি কাজের লিঙ্কের সাথে আপডেট করেছি এবং লিঙ্কযুক্ত পৃষ্ঠার প্রাসঙ্গিক বিভাগটি উদ্ধৃত করেছি।
sdouglass

7
... সুতরাং project.base.dirপ্রকল্পের মূল ডিরেক্টরিতে নির্দেশ করুন যেখানে pom.xML রয়েছে। যে কেন পরে, project.build.directoryমাভেন দ্বারা সংজ্ঞায়িত হয় ${project.basedir}/target। ধন্যবাদ ছেলেরা, আমি এটি জানতাম না।
evaldeslacasa

1
যদিও এটি সত্য বলে মনে হচ্ছে, তবে আপনি কীভাবে এই তথ্যটি পেলেন: "प्रोजेक्ट.বেস.ডির যেখানে প্রকল্পের মূল ডিরেক্টরিটি নির্দেশ করে যেখানে pom.xml"। আমি এই সংজ্ঞাটি কোথায় দেখতে পাব?
কুর্তাল

2
আপনার প্রকল্পের অনুমান প্রকল্প-এ বলা হয়, এবং প্রকল্প-এ অধীনে, একটি pom.xml ঘোষিত হয়, তারপর ${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
sc30

4

আপনার প্রকল্পের মানটির সর্বাধিক আপ টু ডেট উত্তর সন্ধান করতে পারেন কেবলমাত্র কার্যকর করুন

mvn3 help:effective-pom

কমান্ড দিন এবং <build> ... <directory>কার্যকর-পম এ ফলাফলের মধ্যে ট্যাগের মানটি সন্ধান করুন। যদি আপনি ওভাররাইট না করে থাকেন তবে এটি সুপার পিওমের মান প্রদর্শন করবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.