java - मेवेन मल्टीमॉड प्रोजेक्ट का ऑर्डर बनाएं?




maven build (2)

उच्च स्तर पर, बिल्ड ऑर्डर मॉड्यूल निर्भरता ग्राफ के एक स्थलीय प्रकार पर आधारित होता है।

संपादित करें: आपके लिए प्रश्न। मैं समझता हूं कि प्रोजेक्ट 1 में दो मॉड्यूल हैं और इसलिए प्रोजेक्ट 2 है। लेकिन प्रोजेक्ट 2 में मॉड्यूल स्पष्ट रूप से "पैरेंट" पोम को माता-पिता के रूप में घोषित करते हैं? मैं सोच रहा हूं कि शायद आपकी परियोजना 1 मॉड्यूल स्पष्ट रूप से अभिभावक पोम घोषित करते हैं, और प्रोजेक्ट 2 मॉड्यूल नहीं करते हैं। जिसका अर्थ यह होगा कि प्रोजेक्ट 2 "पैरेंट" वास्तव में बिल्कुल माता-पिता नहीं है और इसलिए मॉड्यूल से पहले इसे बनाना नहीं है। वैसे भी मेरा अनुमान है।

स्थिति यह है कि मेरे पास एक ही संरचना के साथ दो मेवेन मल्टीमॉड परियोजनाएं हैं:

Parent
    - Module 1
    - Module 2

जब मैं प्रोजेक्ट 1 बनाता हूं, तो मुझे लगता है कि माता-पिता पहले बनाया गया है (ऑर्डर पेरेंट-> मॉड्यूल 1-> मॉड्यूल 2 है )। हालांकि प्रोजेक्ट 2 के लिए, पैरेंट आखिरी बार बनाया गया है (ऑर्डर मॉड्यूल 1-> मॉड्यूल 2-> पैरेंट है )। दोनों परियोजनाओं के अलग-अलग निर्माण आदेश क्यों हैं? इसके अलावा, मैं बिल्ड ऑर्डर को मैन्युअल रूप से कैसे नियंत्रित कर सकता हूं?

अद्यतन 1:
दोनों मूल परियोजनाएं स्रोत कोड के बिना सरल पीओएम परियोजनाएं हैं, इसलिए मैं निर्भरता ग्राफ के अनुसार निर्माण आदेश की व्याख्या नहीं कर सकता।

अद्यतन 2:
जीएवी और बाल मॉड्यूल नामों को छोड़कर माता-पिता पीओएम समान हैं:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>parent-group-id</groupId>
    <artifactId>parent-artifact-id</artifactId>
    <version>parent-version</version>
    <packaging>pom</packaging>
    <name>parent-name</name>
    <modules>
        <module>module-1</module>
        <module>module-2</module>
    </modules>
</project>

बिल्ड ऑर्डर मेवेन रिएक्टर द्वारा निर्धारित किया जाता है जो एक ऐसी तंत्र है जो परियोजनाओं को सॉर्ट करके बहुआयामी निर्माण के लिए स्वचालित निर्माण आदेश को स्वचालित रूप से सुनिश्चित करती है।

यह कैसे काम करता है के लिए आधिकारिक दस्तावेज देखें।

इसे कहते हैं:

परियोजनाओं को सॉर्ट करते समय निम्नलिखित संबंधों को सम्मानित किया जाता है:

  • निर्माण में एक और मॉड्यूल पर एक परियोजना निर्भरता
  • एक प्लगइन घोषणा जहां प्लगइन निर्माण में एक और मॉड्यूल है
  • निर्माण में एक और मॉड्यूल पर एक प्लगइन निर्भरता
  • निर्माण में एक और मॉड्यूल पर निर्माण विस्तार घोषणा
  • तत्व में घोषित आदेश (यदि कोई अन्य नियम लागू नहीं होता है)

आप बिल्ड ऑर्डर को मैन्युअल रूप से नियंत्रित नहीं कर सकते हैं। अगर आप ऑर्डर बदलना चाहते हैं तो आपको अपने प्रोजेक्ट में बदलाव करना होगा जो रिएक्टर सॉर्ट ऑर्डर को प्रभावित करता है।





multi-module