2012-11-02 38 views
5

बनाने के लिए मैं अन्य परियोजना पर कई निर्भरता के साथ इस परियोजना की है।कैसे Maven निर्माण निर्भर परियोजना

<?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/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>group1</groupId> 
<artifactId>artifact1<artifactId> 
<name>RealtyRegistry</name> 
<packaging>war</packaging> 
<version>1.0.0-SNAPSHOT</version> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 
<dependencies> 
    <dependency> 
     <groupId>group1</groupId> 
     <artifactId>artifact2</artifactId> 
     <version>1.0.0</version> 
    </dependency> 
    <dependency> 
     <groupId>group1</groupId> 
     <artifactId>artifact3</artifactId> 
     <version>1.0.0</version> 
    </dependency> 
</dependencies> 

उनमें से सभी मेरे साथ एक साथ विकसित हुए। मैं सभी परियोजनाओं की फाइलों में संस्करण जोड़ता हूं और मुझे आश्रित लोगों के साथ मुख्य परियोजना बनाने की आवश्यकता है। वृक्ष संरचना के बिना परियोजनाओं के लिए यह कैसे करें?

2 या अधिक परियोजनाओं पदानुक्रम के लिए कवर के पेड़, उदाहरण के लिए नहीं हो सकता है: एक बी, सी पर निर्भर करता है; डी सी, ई पर निर्भर करता है; ए और डी स्वतंत्र हैं।

उत्तर

6

आप कई परियोजनाओं को एक साथ "मॉड्यूल" का उपयोग कर बना सकते हैं। आम तौर पर, आप <packaging>pom</packaging> के साथ एक "माँ" परियोजना बनाने और <modules> टैग का उपयोग कर मॉड्यूल के रूप में अपने वास्तविक परियोजना जोड़कर ऐसा करते हैं। फिर, जब आप "मां" प्रोजेक्ट बनाते हैं, तो सभी मॉड्यूल स्वचालित रूप से सही क्रम में बनाए जाते हैं।

<groupId>org.sonatype.mavenbook.multi</groupId> 
<artifactId>simple-parent</artifactId> 
<version>1.0</version> 
<packaging>pom</packaging> 

<modules> 
    <module>simple-weather</module> 
    <module>simple-webapp</module> 
</modules> 

ध्यान दें कि यह सब-फ़ोल्डर कि तदनुसार नाम हैं में अपने मॉड्यूल की अपेक्षा करती है:

यहाँ Maven by Example किताब से एक उदाहरण है।

/.../my-project/ 

और में मॉड्यूल: उदाहरण के लिए, यदि आप कुछ फ़ोल्डर में "माँ" पोम होता

/.../my-project/simple-weather/ 
/.../my-project/simple-webapp/ 

अधिक जानकारी के लिए इस पुस्तक की Chapter 6. A Multi-module Project पढ़ें, यह Sonatype पर स्वतंत्र रूप से उपलब्ध है वेबसाइट।

+0

बात मेरी Maven परियोजनाओं एक पेड़ नहीं बनाता है, उन्हें सब फ़ोल्डर में डाल दिया है। प्रोजेक्ट पदानुक्रम के लिए 2 या अधिक कवर पेड़ हो सकते हैं, उदाहरण के लिए: ए बी, सी पर निर्भर करता है; डी सी, ई पर निर्भर करता है; ए और डी स्वतंत्र हैं। – Vyacheslav

+0

आश्रितों के मॉड्यूल पोम के भीतर इन निर्भरताओं को निर्दिष्ट करें। – Will

+0

@ व्याचेस्लाव यहां एक गलतफहमी है: मॉड्यूल सिस्टम पर निर्भरताओं के साथ कुछ लेना देना नहीं है। आपकी परियोजनाओं में एक-दूसरे के बीच मनमानी निर्भरता हो सकती है। एकमात्र नई बात यह है कि आप उन्हें मुख्य परियोजना के मॉड्यूल के रूप में घोषित करते हैं और उन्हें एक-दूसरे के बगल में सबफ़ोल्डर में डाल देते हैं। – rolve

संबंधित मुद्दे