idea + maven + nexus 實戰全套

背景介紹

接上一篇文章,linux 上部署 nexus 和 maven
上篇文章研究完了 基本部署和上傳 jar 包及下載 jar 包。那麼核心技術已經解決。接下來的任務是把一個傳統的 lib-jar web 工程轉換成 maven 工程。在這中間也反推上篇文章的可行性是沒有問題的。

硬件介紹

  1. apache-maven-3.5.2 提取碼: x66x
  2. idea 2019 企業版

技能列表

  • 使用 idea 優化 maven jar 包依賴。查看、清除 衝突和重複的 jar 包
  • 使用 idea 創建 pom 、 jar 、 war 等工程
  • 設計 maven 工程架構。包含 父子工程、聚合工程、獨立 jar 包

使用 idea 優化 maven jar 包依賴。查看、清除 衝突和重複的 jar

優秀的文章
上述文章描述了idea 如何查看、排除 maven jar 包的基本操作。我在此處補充描述一些常用操作。
如何快速認識和排查相關依賴

  1. 第一步看直接依賴
    在這裏插入圖片描述
    這一列是工程中直接寫 dep 產生的依賴。此處會產生大量重複依賴,因爲你也寫的兩個或多個 dep 之前是否存在引用關係。如 A 引用了 B ,我們把 B 也寫了一個 dep
 		<dependency>
            <groupId>commons-pool</groupId>
            <artifactId>commons-pool</artifactId>
            <version>1.6</version>
        </dependency>

反面案例重複引用 此時我們可以大膽的刪除 servlet-api 。因爲 它被 jsp-api 引用了。項目會自動加載 servlet-api 包。

在這裏插入圖片描述
爲了安全起見,刪除被引用的包之後,可以再次觀察下方圖片處,查看一下對應的包是否還存在。一般都會存在,不過可能版本會改變。因爲 jsp-api 中引用的版本不一定和主動引用的一致。最後使用哪個版本由項目自己決定,如果需要使用高版本,則不用刪除了。此處只是介紹如何排查。
在這裏插入圖片描述

  1. 查看間接重複引用
    大家的項目可能存在大量虛線。其實我並不知道這些虛線會導致什麼問題,只是強迫症讓我必須把它清理調。如下圖:
    在這裏插入圖片描述
  • 我們選中重複的包名。可以通過 ctrl+f 快速選擇
    在這裏插入圖片描述
  • 選擇之後。點擊圖片按鈕處,查看引用詳情。
    在這裏插入圖片描述
  • 詳情如圖。可以使用 shift + delete 刪除一個引用在這裏插入圖片描述
  • idea 會自動改寫 pom 配置,刪除一處引用
       <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis.spring.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-context</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-jdbc</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-tx</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-core</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>

這樣咱就清除了間接重複引用的包。

使用 idea 創建 pom 、 jar 、 war 等工程

如下即可
在這裏插入圖片描述

設計 maven 工程架構。包含 父子工程、聚合工程、獨立 jar 包

其實我的工程設計也是參照一個經典的教學項目。 淘淘商城
結構如圖 : 直接用聚合工程說明所有
在這裏插入圖片描述

驗證結果

在這裏插入圖片描述

總結

  • 當完成所有清除動作之後,驗證成果的時候。重新創建一個本地倉庫 路徑,將配置、啓動的動作重新來一次。這樣不用擔心一些工具緩存帶來臨時有效的矇蔽。
  • 使用聚合工程的時候。module 的順序可能有一定的影響,最好將基礎的 pojo 放在最前面
  • install 的時候,pojo 優先 install 。然後直接 install 聚合工程的 ,不用一一再去 install 其他子module ,我這邊一直報錯,因爲子 module 認爲 依賴的 pojo 是私服或公網需要提供的。一直報錯。
  • 多 build 項目。可以讓你知道 jar 包是否引全了。版本是否是代碼需要的。
  • SNAPSHOT 版本的 jar 包不能直接使用私服的上傳頁面進行上傳,得用 maven 命令如下
mvn deploy:deploy-file -DgroupId=com.yiyibang.internethospital  -DartifactId=yeb-patient-pojo -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=E:\localRepository\com\yiyibang\internethospital\yeb-patient-pojo\1.0-SNAPSHOT\yeb-patient-pojo-1.0-SNAPSHOT.jar -Durl=http://47.99.69.84:8081/repository/maven-snapshots/ -DrepositoryId=snapshots
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章