Maven模塊化項目

1.如何理解軟件設計的模塊化

 解決軟件的複雜性問題,或說降低軟件的複雜性。不至於隨着變大而不可控二失敗,使其可控、可維護、可擴展。

 模塊化是以分治法爲依據。簡單說就是把軟件整體劃分,劃分後的塊組成了軟件。

 這些塊都相對獨立,之間用接口(協議)通信,每個塊完成一個功能,多個塊組合可以完成一系列功能。

2.模塊化的目的是什麼?

2.1 提高工作效率

 比如在項目A中你寫一個模塊,A完成後啓動了項目B,在B中就可以直接複用項目A的模塊化了。一個可複用的軟件可以爲將來節省費用,被複用的頻率越高,組件的初始化成本就越低。

2.1 提高軟件質量

 可複用的軟件總比不能複用的有更多的質量保障。因爲可複用的軟件在不斷的複用過程中把一些bug,缺陷都很快的排除了。因此可複用的軟件一定是有利於系統的可維護性。

3 如何設計模塊化

3.1 IDEA創建maven項目

3.1.1 刪除src、target目錄,只保留pom.xml

 父pom.xml增加的依賴可被子模塊繼承

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.6.RELEASE</version>
</parent>
<modules>
    <module>model</module>
    <module>dao</module>
    <module>service</module>
    <module>webapi</module>
</modules>

3.2 創建子模塊(module)

 1—>: file -> new -> module 輸入model
 2—>: file -> new -> module 輸入dao
 3—>: file -> new -> module 輸入service

3.3 修改子模塊pom.xml配置

<parent>
    <artifactId>test</artifactId>
    <groupId>test</groupId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>

 注意../pom.xml此段必須加上,用來繼承父模塊

 如果要使用其他模塊的程序,必須增加此模塊的依賴

<dependency>
    <groupId>test</groupId>
    <artifactId>service</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

 至此模塊化配置完成。

3.4 模塊化打包

 模塊化打包和非模塊化打包不一樣,需要選擇有啓動項目(public static void main(String args[]){SpringApplication.run(Application.class,args);})的java文件所在模塊爲主包,需增加一下配置

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <classifier>exec</classifier>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
</build>

 打包命令和之前一樣mvn package -DskipTests

這裏寫圖片描述

 我們運行的真正war包爲帶exec的。

版權聲明:本文爲博主原創文章,未經博主允許不得轉載


關注公衆號:猿小雷
獲取更多文章,第一之間掌握技術。
有問題請在公衆號內回覆,小雷會一一回答。

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章