2011-12-07 24 views
6

में मूल टैग का अर्थ मैंने अपनी परियोजना को कोड के अगले स्निपेट के समान ही संरचना के साथ बनाया है।मेवेन

|-- modP 

| |-- pom.xml 

| |-- src 

| | |-- main 

| |  `-- java 

| |   `-- com 

| |    `-- myorg 

| |     `-- myapp 

| |      `-- modP 

| |       `-- AppP.java 

|-- modC1 

| |-- pom.xml 

| |-- src 

| | |-- main 

| |  `-- java 

| |   `-- com 

| |    `-- myorg 

| |     `-- myapp 

| |      `-- modC 

| |       `-- AppM.java 

|-- modC2 

| |-- pom.xml 

| |-- src 

     |-- main 

      `-- java 

       `-- com 

        `-- myorg 

         `-- myapp 

          `-- modC2 

           `-- AppN.java 

modP के लिए मेरे pom.xml है:

<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>com.myorg.myapp</groupId> 

    <artifactId>modP</artifactId> 

    <version>0.0.1-SNAPSHOT</version> 

    <packaging>pom</packaging> 



    <name>modP</name> 

    <url>http://maven.apache.org</url> 



    <properties> 

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 

    </properties> 



    <dependencies> 

    <dependency> 

     <groupId>junit</groupId> 

     <artifactId>junit</artifactId> 

     <version>3.8.1</version> 

      <scope>test</scope> 

    </dependency> 

    </dependencies> 

</project> 

सी 1 के लिए मेरे pom.xml है:

<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"> 

<parent> 

    <artifactId>modP</artifactId> 

    <groupId>com.myorg.myapp</groupId> 

    <version>0.0.1-SNAPSHOT</version> 

    <relativePath>.../modP/pom.xml</relativePath> 

</parent> 

<modelVersion>4.0.0</modelVersion> 



    <groupId>com.myorg.myapp</groupId> 

    <artifactId>modC1</artifactId> 

    <packaging>jar</packaging> 



    <name>modC1</name> 

    <url>http://maven.apache.org</url> 

</project> 

और सी 2 के लिए pom.xml है:

<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"> 

<parent> 

    <artifactId>modP</artifactId> 

    <groupId>com.myorg.myapp</groupId> 

    <version>0.0.1-SNAPSHOT</version> 

    <relativePath>.../modP/pom.xml</relativePath> 

</parent> 

<modelVersion>4.0.0</modelVersion> 



    <groupId>com.myorg.myapp</groupId> 

    <artifactId>modC2</artifactId> 

    <packaging>jar</packaging> 



    <name>modC2</name> 

    <url>http://maven.apache.org</url> 

</project> 

मेरा सवाल है कि मैं इस तरह के कॉन्फ़िगरेशन संदर्भ AppP.jav का उपयोग कर सकता हूँ ModC1 और ModC2 में AppC1.java और AppC2.java में ModP से।

मैंने कोशिश की और ऐसा लगता है कि यह काम नहीं करता है। क्या मैंने pom.xml में पैरेंट टैग का अर्थ गलत समझा? इस तरह के समारोह के लिए मुझे मेवेन में क्या करने की ज़रूरत है?

मैंने बहुत सारे दस्तावेज पढ़े, लेकिन अब मैं पढ़ने से पहले और भी उलझन में हूं। :(

हर जवाब अत्यधिक सराहना की जाएगी।

धन्यवाद

उत्तर

4

के बाद से ModP एक पोम (पैकेजिंग) परियोजना है, यह किसी भी जावा कोड शामिल नहीं होना चाहिए।

12

आमतौर Maven परियोजनाओं पदानुक्रम संग्रहीत किया जाता है पदानुक्रमित फाइल सिस्टम में। बाल परियोजनाओं को माता-पिता के तहत संग्रहीत किया जाता है, यानी आपकी शर्तों में:

modP 
    pom.xml 
    modC1 
     pom.xml 
    modC2 
     pom.xml 

उप परियोजनाओं का अपना बच्चा हो सकता है n आदि

उच्च स्तर को छोड़कर प्रत्येक परियोजना एक को शामिल करना चाहिए परिभाषा की तरह

<parent> 
    <groupId>com.company</groupId> 
    <artifactId>parent-artifact-id</artifactId> 
    <version>1.0</version> 
</parent> 

प्रत्येक माता पिता मॉड्यूल मॉड्यूल की सूची धारण करना चाहिए: आपके मामले में जहां तक ​​मैं समझता हूँ

<modules> 
    <module>child1</module>  
    <module>child2</module>  
    <module>child3</module>  
</modules> 

आप सभी 3 परियोजनाओं को एक ही निर्देशिका में रखते हैं लेकिन उनमें से एक माता-पिता है। यह संभव है लेकिन मुझे लगता है कि माता-पिता के पोम का आपका संदर्भ गलत है। डॉट्स की संख्या 3, जबकि 1 होना चाहिए:

<relativePath>.../modP/pom.xml</relativePath>

यह एक कोशिश:

<relativePath>../modP/pom.xml</relativePath>

+0

आप सही ढंग से समझा। सभी 3 परियोजनाएं एक ही निर्देशिका में हैं, और बिंदुओं की संख्या मेवेन दस्तावेज के अनुसार सही है। मैं इस मामले में पिस सही है। अभिभावक pom.xml (प्रोजेक्ट) में कोई कोड नहीं होना चाहिए। – Tiho