《Maven權威指南》第六章. 一個多模塊項目 ,以及第七章. 多模塊企業級項目 都已翻譯完畢。
一個現實生活中的Maven項目只有一個POM文件,那是不現實的。典型的項目會和數據庫交互,和Web Service交互,有自己的業務邏輯,暴露Web Service,有命令行應用程序,有Web應用程序……這個時候,必須分一下模塊,鬆散耦合,清晰關聯,增加重用等等好處不用多說。這兩章內容,就是介紹怎樣使用Maven的模塊集成及聚合相關功能的。
看一看多模塊企業級項目的模塊關係圖:
這裏有一個父模塊,一個web應用,一個命令行應用,一個持久化模塊,一個業務邏輯模塊,一個模型對象模塊。基本上,這個圖能很典型的代表很多項目的結構了。該圖中,展現了模塊之間的各種關係,有依賴(dependency),傳遞性依賴(transitive dependency),子模塊(module of),繼承(inherits from)。
這裏配置子模塊的XML片段爲:
<modules> <module>simple-command</module> <module>simple-model</module> <module>simple-weather</module> <module>simple-persist</module> <module>simple-webapp</module> </modules>
配置繼承的XML片段爲:
<parent> <groupId>org.sonatype.mavenbook.ch07</groupId> <artifactId>simple-parent</artifactId> <version>1.0</version> </parent> <artifactId>simple-model</artifactId> <packaging>jar</packaging>
配置依賴的XML片段爲:
<dependency> <groupId>org.sonatype.mavenbook.ch07</groupId> <artifactId>simple-model</artifactId> <version>1.0</version> </dependency>
關於傳遞性依賴,這裏做個簡單的解釋,項目A依賴於項目B,而項目B依賴於項目C,那麼項目A就自動會擁有對於項目C的傳遞性依賴。 如上圖中,simple-webapp模塊直接依賴於simple-weather模塊,而simple-weather模塊直接依賴於simple-model模塊,那麼simple-webapp就擁有對於simple-model的傳遞性依賴。
第七章的內容,真正涉及Maven的其實不是很多,相反,作者花了很大篇幅介紹使用Hibernate,Spring,Velocity等等較爲流行的Java開源框架,這些內容也是實際開發中常常會遇見的。
項目越大,Maven所體現的優勢也就越大,要真正在實際項目中使用Maven,那麼,這兩章內容必定能夠很好的幫助你開始。