maven項目的多級目錄


剛剛把一個開源的項目變成maven項目來進行管理,由於是多級的目錄(以前配置的都是單級的目錄),所以記錄一下pom文件是怎么配置的。

 

一、目錄結構

如下,maven的結構圖,紅字是表示完整的項目

 

二、建立pom文件

那么,首先在每個目錄先建立一個pom文件,以便maven能搜索到每個項目。

 

(一)Trunk下的pom文件是主pom文件,里面定義好全局的變量
部分代碼:

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.cpacm.demo</groupId>
    <artifactId>cpacm-talkback</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <description>
    talkback
    </description>
    <!-- 子模塊聲明 -->
    <modules>
        <!-- ###lib### -->
        <module>libraries</module>
        <!-- ###apk### -->
        <module>accessibilityServices</module>
    </modules>
    <!-- 全局屬性約定 -->
       <properties>
       </properties>

包含兩個子目錄中的項目libraries和accessibilityServices

(二)accessibilityServices下的pom文件

 

    <parent>
        <artifactId>cpacm-talkback</artifactId>
        <groupId>com.cpacm.demo</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>accessibilityServices</artifactId>
    <packaging>pom</packaging>
    <name>accessibilityServices</name>
    <description>。。。。</description>

    <!-- 子模塊聲明 -->
    <modules>
        <!-- ###lib### -->
        <module>talkback</module>
    </modules>

 

Parent節點中的信息要與父pom中(即trunk下的pom文件)的信息一一對應,因為maven會根據groupId:artifactId:version來進行搜索 有一項不對就會匹配不上。(這里的version沒 寫,默認跟父pom一樣),聲明是pom類型,因為這不是個實際的項目

子模塊是talkback

 

    <parent>
        <artifactId>accessibilityServices</artifactId>
        <groupId>com.cpacm.demo</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>talkback</artifactId>
    <packaging>apk</packaging>
    <name>talkback</name>
    <description>talkback</description>

 

這里就很明白了,一個apk類型的項目(Android

(三)Libraries下的pom文件

 

    <parent>
        <artifactId>cpacm-talkback</artifactId>
        <groupId>com.cpacm.demo</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <artifactId>libraries</artifactId>
    <packaging>pom</packaging>
    <name>libraries</name>
    <description>。。。。</description>

    <!-- 子模塊聲明 -->
    <modules>
        <!-- ###lib### -->
        <module>commandslib</module>
        <module>actionslib</module>
        <module>compatutils</module>
        <module>utils</module>
        <module>widgets</module>
    </modules>

 

跟上面的pom文件一樣的結構

每個庫下的pom文件就省略不寫了,跟talkback下的pom文件一樣,只不過類型變成

<packaging>apklib</packaging>

 

總結

Pom文件無法找到上一級的文件多半是你的idver寫錯了,再認真檢查一遍可能就會發現自己犯的錯誤。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM