<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Maven專案物件模型(POM),可以通過一小段描述資訊來管理專案的構建,報告和檔案的專案管理工具軟體。
Maven 除了以程式構建能力為特色之外,還提供高階專案管理工具。由於 Maven 的預設構建規則有較高的可重用性,所以常常用兩三行 Maven 構建指令碼就可以構建簡單的專案。由於 Maven 的面向專案的方法,許多 Apache Jakarta 專案發文時使用 Maven,而且公司專案採用 Maven 的比例在持續增長。
Maven這個單詞來自於意第緒語(猶太語),意為知識的積累,最初在Jakata Turbine專案中用來簡化構建過程。當時有一些專案(有各自Ant build檔案),僅有細微的差別,而JAR檔案都由CVS來維護。於是希望有一種標準化的方式構建專案,一個清晰的方式定義專案的組成,一個容易的方式釋出專案的資訊,以及一種簡單的方式在多個專案中共用JARs
知識點總結:
Maven專案物件模型(POM) 主要管理專案的構建,報告和檔案的專案管理工具軟體。
由於 Java 的生態非常豐富,無論你想實現什麼功能,都能找到對應的工具類,這些工具類都是以 jar包的形式出現的,例如 Spring,SpringMVC、MyBatis、資料庫驅動,等等,都是以 jar包的形式出現的,jar包之間會有關聯,在使用一個依賴之前,還需要確定這個依賴所依賴的其他依賴,所以,當專案比較大的時候,依賴管理會變得非常麻煩臃腫,這是 Maven 解決的第一個問題。
Maven 還可以處理多模組專案。簡單的專案,單模組分包處理即可,如果專案比較複雜,要做成多模組專案,例如一個電商專案有訂單模組、會員模組、商品模組、支付模組...,一般來說,多模組專案,每一個模組無法獨立執行,要多個模組合在一起,專案才可以執行,這個時候,藉助 Maven 工具,可以實現專案的一鍵打包。
Maven 之前,我們更多的是使用Ant的專案構建工具,Ant 有一個特點,每次都得寫,每次都寫的差不多,設定也臃腫。所以,後來搞出來Maven。Maven就是最先進的版本構建工具嗎?不是的,只不過,目前在 Java 領域 Maven 使用比較多。除了 Maven,還有 Gradle。
Maven是 Java專案,因此必須先安裝 JDK。
下載地址:http://maven.apache.org/download.cgi
bin: 該目錄包含了mvn執行的指令碼,分別為mvn、mvn.bat、mvnDebug、mvnDebug.bat和m2.conf,這些指令碼用來設定 Java 命令,準備 CLASSPATH 和相關的 Java 系統屬性,然後執行 Java 命令
boot: 該目錄只包含一個檔案,以maven 3.0為例,該檔案為plexus-classworlds-2.2.3.jar。plexus-classworlds是一個類載入器框架,相對於預設的 Java 類載入器,它提供了更豐富的語法以方便設定,Maven 使用該框架載入自己的類庫。
conf: 該目錄包含了要給非常重要的檔案settings.xml。直接修改該檔案,就能再機器上全域性地客製化 Maven 的行為。一般情況下,我們更偏向於複製該檔案至/.m2/目錄下(表示使用者目錄),然後修改該檔案,在使用者範圍客製化 Maven 的行為。
lib: 該目錄包含了所有 Maven 執行時需要的 Java 類庫,Maven 本身是分模組開發的,因此使用者能看到諸如maven-core-3.0.jar和maven-model-3.0.jar之類的檔案。
LICENSE: 該檔案記錄了 Maven 使用的軟體許可證
NOTICE:該檔案記錄了 Maven 包含的第三方軟體。
README.txt: 該檔案則包含了 Maven 的簡要介紹,包括安裝需求以及如何安裝的簡要指令等。
2.3.1檢查JDK環境變數
1.設定Java_Home環境變數
2.通過DOS命令視窗 檢查設定是否有效
2.3.2 設定maven_home環境變數
1.設定MAVEN_HOME
2.設定環境變數
3.檢查Maven是否有效 重啟DOS視窗
實際上,沒有特殊需求的話,安裝好之後直接就可以用了。一般來說,還是需要稍微設定一下,比如中央倉庫的問題。Maven預設使用自己的中央倉庫,使用起來網速比較慢,這個時候,可以通過修改組態檔,將倉庫改成國內的映象倉庫,國內倉庫使用較多的是阿里巴巴的倉庫。
倉庫型別 說明 | |
---|---|
本地倉庫 | 就是你自己電腦上的倉庫,每個人電腦上都有一個倉庫,預設位置在當前使用者名稱.m2repository |
私服倉庫 | 一般來說是公司內部搭建的 Maven私服,處於區域網中,存取速度較快,這個倉庫中存放的 jar一般就是公司內部自己開發的 jar |
中央倉庫 | 由 Apache團隊來維護,包含了大部分的 jar,早期不包含Oracle資料庫驅動,從 2019年 8月開始,包含了 Oracle 驅動 |
現在存了三個倉庫,那麼jar包如何查詢呢?
本地倉庫預設位置在當前使用者名稱.m2repository
,這個位置可以自定義,但是不建議大家自定義這個地址,有幾個原因:
技術上來說,當然是可以自定義本地倉庫位置的,在 conf/settings.xml中自定義本地倉庫位置:
<localRepository>f:My-Maven-Repository</localRepository>
由於預設的中央倉庫下載較慢,因此,也可以將遠端倉庫地址改為阿里巴巴的映象倉庫地址:
<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror>
這段設定,加在 settings.xml中的 mirrors節點中:
Maven中有一些常見的命令,如果使用Eclipse需要手動敲命令,如果使用 IDEA的話,可以不用命令,直接點點點就可以了
常用命令 中文含義 說明 | ||
mvn clean | 清理 | 這個命令可以用來清理已經編譯好的檔案 |
mvn compile | 編譯 | 將 Java程式碼編譯成Class檔案 |
mvn test | 測試 | 專案測試 |
mvn package | 打包 | 根據使用者的設定,將專案打成 jar包或者 war包 |
mvn install | 安裝/部署 | 手動向本地倉庫安裝一個 jar |
mvn deploy | 上傳 | 將 jar上傳到私服 |
這裡需要注意的是,這些命令都不是獨立執行的,它有一個順序。舉個簡單例子:
我想將jar上傳到私服,那麼就要構建jar,就需要執行package命令,要打包,當然也需要測試,那就要走mvn test 命令,要測試就要先編譯.............................. ,因此,最終所有的命令都會執行一遍。不過,開發者也可以手動設定不執行某一個命令,這就是跳過。一般來說,除了測試,其他步驟都不建議跳過。
當然,如果開發者使用了 IDEA,這些命令不用手動敲,點一下就行:
1.validate 驗證工程是否正確,所有需要的資源是否可用。 命令: mvn validate
2.compile 將檔案由.java檔案編譯為.class檔案 動態生成target檔案目錄 命令: mvn compile
3.clean 清空target檔案目錄 命令: mvn clean
4.test 執行測試方法是否正確 命令: mvn test
5.package 將專案的target檔案打包為jar包檔案 命令: mvn package
6.verify 對整合測試的結果進行檢查,以保證質量達標 命令: mvn verify
7.install 安裝打包的專案到本地倉庫,以供其他專案使用 命令: mvn install
8.site 專案站點檔案建立的處理 命令: mvn site
9.deploy 拷貝最終的工程包到遠端倉庫中,以共用給其他開發人員和工程 (瞭解 用不到)
可以直接通過命令來構建一個 Maven專案,不過在實際開發中,一般使用Eclipse或者 IDEA就可以直接建立 Maven專案了。建立命令:
mvn archetype:generate
需要注意:第一次使用該命令,會先下載構建專案所需的jar包
專案建立成功後,就兩個檔案:
說明對一個任何一個專案而言,最最核心的就是這兩個。
pom.xml中,則定義了所有的專案設定
接下來,我們通過mvn package
命令可以將剛剛建立的專案打成一個 jar包。
在打包之前,需要設定JDK的版本至少為 7以上,因此,我們還需要手動修改一下pom.xml 檔案,即新增如下設定:
<!-- java版本 --> <profile> <id>jdk-11</id> <activation> <activeByDefault>true</activeByDefault> <jdk>11</jdk> </activation> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion> </properties> </profile>
執行打包命令,注意執行所有命令時,命令列要定位到 pom.xml檔案所在的目錄,看到如下提示,表示專案打包成功。
如果需要將專案安裝到本地倉庫,可以直接執行 mvn install
命令,注意,mvn install
命令會包含上面的 mvn package
過程。
安裝到本地倉庫之後,這個時候,點開自己的本地倉庫,就可以看到相關的 jar了。
到此這篇關於Maven實現專案構建工具的文章就介紹到這了,更多相關Maven專案構建工具內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45