Maven?自動化構建的實現(xiàn)示例
一、Maven:是一款服務于 Java平臺的自動化構建工具
【1】Maven可以將一個項目按模塊劃分成不同的工程,利于分工協(xié)作;
【2】Maven可以將 jar包保存在自己的中央“倉庫”中進行統(tǒng)一管理,有需要使用的工程引用這個文件接口即可,不需要真的將 ja包復制過來(解決同樣的 jar包文件重復出現(xiàn)在不同的項目工程中,一方面浪費存儲空間,另外也讓工程比較臃腫);
【3】可以自動導入依賴的相關jar包,之前需要自己手動導入相關 jar包;
【4】Tip:如下表示運行時環(huán)境,主要存儲 String等類似對象,其實只是一組 jar包的引用;

二、安裝 Maven:配置環(huán)境變量即可
【1】創(chuàng)建 MAVNE_HOME環(huán)境變量

【2】在 path 中添加 Maven 的 bin 目錄:驗證(mvn -v)命令查看 maven 版本

三、自定義Maven倉庫
修改解壓目錄下的conf/setting.xml文件:

四、命令
【1】maven compile:編譯main文件,生成class文件位于 target 目錄中。
【2】maven package:對主程序進行打包,生成文件在 target 目錄中。
【3】maven clean:清理 target 目錄下文件。
POM:project object model 項目對象模型。對于 Maven 工程是核心配置文件,與構建過程相關的一切設置都是在這個文件中進行設置。
五、坐標:使用下面三個向量在倉庫中唯一定位一個Maven工程
【1】groupid: 公司或組織域名倒序+項目名
【2】artifactid: 模塊名稱Hello
【3】version: 版本
<groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.0.0.RELEASE</version>
【定位的文件】:org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar
六、 倉庫的分類
【1】本地倉庫:當前電腦上部署的倉庫目錄,為當前電腦上所有的Maven工程服務。
【2】遠程倉庫:①、私 服:搭建在當前局域網(wǎng)下,為當前局域網(wǎng)網(wǎng)范圍內的所有Maven工程服務。②、中央倉庫:架設在Internet上,為全世界所有Maven工程服務。③、中央倉庫的鏡像:為了分擔中央倉庫的壓力,提升用戶訪問的速度。
七、依賴:Maven解析依賴信息時,會到本地倉庫中找被依賴的jar包。
對于我們開發(fā)的工程需要使用 install 命令安裝后就可以進入倉庫,生成 jar 包等文件。
<dependency>
<groupId>com.shidaiyintong</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
依賴具有傳遞性: 當父類依賴了 jar 包后,子類 Maven Dependencies 也會自動添加,但非 compile 范圍的 jar 包不能傳遞。
依賴的排除性:使用 exlutions 標簽
<exclusions>
<exclution>
<groupId>xxxx</groupId>
<artifactId>xxx</artifactId>
</exclution>
</exclutions>
<exclusions>
<exclution>
<groupId>xxxx</groupId>
<artifactId>xxx</artifactId>
</exclution>
</exclutions>
依賴的原則: 解決 jar 包沖突問題,就近原則。相同路徑取先聲明者優(yōu)先,指 dependency標簽的聲明順序。
依賴的范圍:
【1】compile: 對主程序、測試程序可見,主程序參與打包、測試程序不參與打包
【2】test: 對主程序無效,對測試程序有效,不參與打包

【3】provided: 主要用于開發(fā),測試有效。不參與打包(不部署),防止沖突(特別是一些服務器的jar包)。 點擊并拖拽以移動?點擊并拖拽以移動?

八、生命周期
? 清理、編譯、測試、報告、打包、安裝、部署、運行。
? 特性: 當執(zhí)行某一階段時,都是從第一階段開始執(zhí)行。
九、利用 MyEclipse 中使用 Maven
【1】使用內置 Maven 但是需要設置如下(不建議使用自帶的 Maven 程序,不穩(wěn)定。使用我們自己解壓的文件)
Window—>Preferences—>Maven4MyEclise—>Installations—>Add

【2】設置 User Settings: 指定 conf/settings.xml 的位置,進而獲取本地倉庫的位置,如下:

【3】修改每次創(chuàng)建 Maven 項目后,JDK的版本,需要在 settings.xml 文件中 標簽內添加如下:
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
【4】Maven 中執(zhí)行命令的方式:pom.xml—>右鍵—>Maven build…—>Golas(compile)等。
【5】Maven 創(chuàng)建一個 Web 工程: 創(chuàng)建的時候 packing:war 包,創(chuàng)建完后,會發(fā)現(xiàn)與我們平常的 web 工程不太一樣,缺少web.xml等文件。添加方式如下:選中工程右鍵進入 properties 屬性—> Project Facets 去掉 Dynamic Web Model再勾上Dynamic Web Model,會出現(xiàn)超鏈接如下:

【6】在 Content directory 中輸入要存放標準Web工程生成的文件的目錄

【7】最終目錄如下:

【8】Maven工程導入Existing Maven Project 沒有 cope 功能,因此要將Maven工程放入 workspace 目錄中,進行導入。在Maven工程中主要通過 pom.xml 文件進行識別。普通Java文件導入時,有 cope 功能,也能夠導入 Maven 工程,但必須是Eclipse 工程,工程中含有 .clsspath/.project 文件為Eclipse工程。
【9】自定義版本標簽: 方便版本升級等問題的解決,凡是需要聲明后統(tǒng)一使用的場合都可以使用, 使用的時候只需要在 中輸入 ${atguigu.spring.version} 即可
<properties> <atguigu.spring.verion>4.0.0.RELEASE</atguigu.spring.version> </peoperties>
十、繼承
對依賴范圍: test、provide 的同一 jar 包的版本的管理。
解決思想: 將此 jar包統(tǒng)一提取到“父”工程中,在子工程中聲明此 jar包依賴時不指定版本號,以父工程中統(tǒng)一設定的為準,同時也便于修改。
操作步驟:
【1】創(chuàng)建一個 Maven 工程作為父工程,打包方式為 pom
【2】在子工程中聲明對父工程的引用
【3】將子工程中坐標與父工程坐標相同的內容刪掉
【4】在父工程中統(tǒng)一 jar包依賴
【5】在自工程中刪除jar包依賴的版本號
子類找干爹配置:
<parent> <!--父元素的pom地址--> <relativePath>../Parent/pom.xml</relativePath><!--相對地址--> </parent>
父類統(tǒng)一管理配置: 配置集成后,執(zhí)行安裝命令 install 時,要先安裝 parent,按順序 install,解決辦法,聚合即可。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit<artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
<dependencies>
</dependencyManagement>
十一、聚合:一鍵安裝各個模塊工程
【1】配置方式: 在一個工程中配置,例如 parent 工程中:直接install parent項目就安裝了全部工程,會自動檢測順序。
【2】查找 jar包的 pom文件: http://mvnrepository.com
<modules> <module>../Hello</module> <module>../HelloFriend</module> </modules>
到此這篇關于Maven 自動化構建的實現(xiàn)示例的文章就介紹到這了,更多相關Maven 自動化構建內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot日志進階實戰(zhàn)之Logback配置經(jīng)驗和方法
本文給大家介紹在SpringBoot中使用Logback配置日志的經(jīng)驗和方法,并提供了詳細的代碼示例和解釋,包括:滾動文件、異步日志記錄、動態(tài)指定屬性、日志級別、配置文件等常用功能,覆蓋日常Logback配置開發(fā)90%的知識點,感興趣的朋友跟隨小編一起看看吧2023-06-06
實例講解分布式緩存軟件Memcached的Java客戶端使用
這篇文章主要介紹了分布式緩存軟件Memcached的Java客戶端使用,Memcached在GitHub上開源,作者用其Windows平臺下的版本進行演示,需要的朋友可以參考下2016-01-01

