(五)Maven中的聚合和繼承

一、為什么要聚合?

?

  • 定義:我們在開發過程中,創建了2個以上的模塊,每個模塊都是一個獨立的maven project,在開始的時候我們可以獨立的編譯和測試運行每個模塊,但是隨著項目的不斷變大和復雜化,我們期望能夠使用簡單的操作來完成編譯等工作,這時Maven給出了聚合的配置方式。所謂聚合,顧名思義,就是把多個模塊或項目聚合到一起,我們可以建立一個專門負責聚合工作的Maven project --- ?aggregator。
  • 注意:
    •     aggregator本身也做為一個Maven項目,它必須有自己的POM它的打包方式必須為: pom
    • ??   它的打包方式必須為: pom
    • ?   引入了新的元素:modules---module,每個module的值都是一個當前POM的相對目錄
    •   ? 聚合模塊的內容僅僅是一個pom.xml文件,它不包含src/main/Java、src/test/java等目錄,因為它只是用來幫助其它模塊構建的工具,本身并沒有實質的內容。

?

  • 案例:

結果:

?

?

?二、繼承

  • 為什么要繼承?

    •   我們在項目開發的過程中,可能多個模塊獨立開發,但是多個模塊可能依賴相同的元素,比如說每個模塊都需要Junit,使用spring的時候,其核心jar也必須都被引入,在編譯的時候,maven-compiler-plugin插件也要被引入。繼承是解決包沖突的解決方法之一。

?

  • ?如何配置:

    •   <packaging>: 作為父模塊的POM,其打包類型也必須為POM
    • ?? 結構:父模塊只是為了幫助我們消除重復,所以它也不需要src/main/java、src/test/java等目錄
    • ???? ? 新的元素:<parent> , 它是被用在子模塊中的
    • ?? 子模塊省略groupId和version: 使用了繼承的子模塊中可以不聲明groupId和version, 子模塊將隱式的繼承父模塊的這兩個元素

    ?

  • 案例:

  • maven_parent/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.shyroke</groupId><artifactId>maven_parent</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>maven_parent</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- 定義公用的依賴包,不負責具體的jar包引用,jar包的引用在子工程中實現 --><dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies></dependencyManagement></project>
  • maven05/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><parent><groupId>com.shyroke</groupId><artifactId>maven_parent</artifactId><version>0.0.1-SNAPSHOT</version>
</parent><artifactId>maven05</artifactId><!-- 如果版本號與maven_parent父工程一致的話可以省略,因為子工程會繼承父工程的groupId和version --><version>2.0.1-SNAPSHOT</version><packaging>jar</packaging><name>maven05</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><!-- 父工程中已經定義了junit的版本,所以這里就不需要定義版本了 --><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency></dependencies>
</project>

結果:

?

轉載于:https://www.cnblogs.com/shyroke/p/7324312.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455425.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455425.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455425.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python堆棧反向輸出列表_python - IPython:將Python腳本的輸出重定向到文件(如bash) - 堆棧內存溢出...

IPython有自己的上下文管理器來捕獲stdout / err &#xff0c;但它沒有重定向到文件&#xff0c;它重定向到一個對象&#xff1a;from IPython.utils import iowith io.capture_output() as captured:%run my_script.pyprint captured.stdout # prints stdout from your script…

關于datagrid

基本在公司使用的datagrid不需要自己寫前臺代碼&#xff0c;只需要自己給grid明確id&#xff0c;url以及列屬性即可。 后臺需要返回一個數據類型&#xff1a;{recordsFiltered2, data[], drawnull, recordsTotal2}&#xff0c;通常返回這個數據類型的話&#xff0c;只需要調用d…

M-JPEG、MPEG4、H.264都有何區別 依維安防論壇

壓縮方式是網絡視頻服務器和網絡攝像機的核心技術&#xff0c;壓縮方式很大程度上決定著圖像的質量、壓縮比、傳輸效率、傳輸速度等性能&#xff0c;它是評價網絡視頻服務器和網絡攝像機性能優劣的重要一環。 隨著多媒體技術的發展&#xff0c;相繼推出了許多壓縮編碼標準&…

Django/Flask/Tornado三大web框架性能分析

寫在前面&#xff1a;本文的數據涉及到之前遇到過的問題&#xff0c;大概一次 http 請求到收到響應需要多少時間。這個問題在實際工作中與框架有比較大的關系&#xff0c;因此特別就框架的性能做了一次分析。這里使用之前的一個報告數據&#xff1a; Pythons Web Framework Ben…

python urllib模塊學習筆記

這個模塊是最基本最常用的&#xff0c;以前看過&#xff0c;總結一下 #coding : utf-8import urlliburl http://cnblogs.com#代理服務器proxies {http:http://127.0.0.1:8087}#使用代理服務器打開r urllib.urlopen(url,proxies proxies)print r.info()print r.getcode()pri…

hibernate基礎工具findBySQL學習

public List<Map<String,Object>> findBySQL(String sql,Map<String,Object> param,int start,int max) {log.debug("finding List by hql");try {       //最后返回map map的key可為別名和數據庫字段SQLQuery querysessionFactory.getCurr…

python處理ini文件_python對ini配置文件處理

>>> cf.read("test.ini") #讀取配置文件[test.ini]>>> cf.sections() #片段名[base, callback]>>> cf.options("callback") #配置…

Python實現自動推本地github博客到遠程倉庫

Python實現自動推本地github博客到遠程倉庫 以前的簡單版本 通過python中的os模塊操作系統命令 詳情可參考:Python實現一行代碼推本地git到遠程倉庫 升級版本 本次加入了監聽文件修改功能 這樣腳本只需在后臺運行,即可檢測到對應的文件夾中的內容是否變化 如果變化,則調用…

H.264/MPEG-4 AVC

維基百科&#xff0c;自由的百科全書跳轉到&#xff1a; 導航, 搜索 跳過字詞轉換說明 漢漢▼▲為了閱讀方便&#xff0c;本文使用全文手工轉換。轉換內容&#xff1a;本文采用電腦和信息技術組全文轉換 [查看] ? [編輯] ? [強制刷新] 以下為本條目單獨的全文轉換&#xff0c…

JavaScript 專題之函數柯里化

JavaScript 專題系列第十三篇&#xff0c;講解函數柯里化以及如何實現一個 curry 函數 定義 維基百科中對柯里化 (Currying) 的定義為&#xff1a; In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes m…

機器學習模板

根據心情補充&#xff0c;語言都是Python hash&#xff0c;把所有的文本轉化成數字 from sklearn.preprocessing import LabelEncoder for c in train.columns:if train[c].dtype object:lbl LabelEncoder()lbl.fit(list(train[c].values) list(test[c].values))train[c] l…

漂亮特殊字體可復制_12個創意字體免費下載網站

今天為大家介紹12個創意字體的網站&#xff0c;這些網站都有提供免費下載的字體哦&#xff0c;希望對大家在創作上面有所幫助。FontSpace在Fontspace上有超過42000種免費字體。在這里字體被整齊的分門歸類&#xff0c;幫助你找到想要的字體。除了典型的“serif” “script”等&…

使用postman測試接口

Postman是一款功能強大的網頁調試與發送網頁HTTP請求的Chrome插件。在java web開發中使用非常多&#xff0c;經常用來測試接口。 使用postman模擬json數據的發送 第一步:在header里邊設置發送數據的類型 Paste_Image.png設置發送數據類型為json&#xff0c;也就是key為Content-…

刪除github上的commit歷史記錄

刪除github上的commit歷史記錄 起步 今天小編發現了git克隆下來的遠程庫特別大: 經過查詢之后發現是每次推送之后都會留下記錄緩存&#xff0c;這樣很多沒用的記錄就會占用多余的空間&#xff0c;別人克隆的時候也會多耗費時間&#xff0c;今天我查到了一個清除無用記錄的方…

DirectShow組件原理分析及應用

1 DirectX簡介  DirectX是Microsoft公司為游戲和其他高性能多媒體應用所提供的一套底層應用程序編程接口。這些接口包括對二維和三維圖形&#xff0c;聲效和音樂&#xff0c;輸入設備以及多玩家網絡游戲等的支持。目前DirectX的最高版本是DirectX 9.0。  1.1 DirectX的組成…

接口安全

老大發了篇文章&#xff0c;讓看如何寫出安全的接口。 如何寫出安全的API接口&#xff1f;接口參數加密簽名設計思路轉載于:https://www.cnblogs.com/Tpf386/p/7053795.html

python中xml模塊_python學習第十五天-2(XML模塊)

也是一種文本轉換形式。importxxxxxxxxxxxxxxxxxxx asxx,可以用xx代替xxxxxxxxxxxxxxxxxxx模塊xml文件的新增&#xff0c;修改&#xff0c;刪除&#xff0c;查詢。新增&#xff1a;?import xml.etree.ElementTreeas ET?new_xmlET.Element(nameList)#創建xml的根節點相當于na…

ubuntu系統下Java環境JDK的安裝

Debian Linux下安裝jdk 下載壓縮包 官網下載對應的.gz包 點擊下載 解壓文件 創建一個目錄用于存放解壓后的文件&#xff0c;并解壓縮到該目錄下 sudo mkdir /opt/java8 sudo tar -zxvf jdk-8u221-linux-x64.tar.gz -C /opt/java8修改環境變量 sudo vim ~/.bashrc 進入…

棧溢出筆記1.3 準備Shellcode

經過1.1和1.2節的講述&#xff0c;我們已經知道了怎樣更改EIP的值。程序運行函數之后將跳轉到我們設定的位置開始運行&#xff0c;因此&#xff0c;我們須要準備一個自己的程序&#xff0c;接手后面的工作。這是一個什么樣的程序&#xff1f;是一個C語言編寫的代碼&#xff1f;…

DirectShow開發快速入門之慨述

文章來源&#xff1a;http://tech.163.com/school 2005-08-18 10:21:32 來源: 天極網摘要&#xff1a;本篇文檔概括性的介紹了DirectShow的主要組成部分&#xff0c;以及一些Directshow的基本概念。熟悉這些基本的知識對于Directshow的應用開發或者過濾器的開發者都會有所幫助…