柚子快報激活碼778899分享:java Maven學(xué)習(xí)筆記
柚子快報激活碼778899分享:java Maven學(xué)習(xí)筆記
目錄
一、什么是Maven
二、maven下載和安裝目錄
1、安裝目錄解析
2、maven倉庫
二、maven項目創(chuàng)建(Hello)
四、maven項目操作
五、創(chuàng)建HelloFriend
六、maven項目中pom.xml標(biāo)簽解釋
1、坐標(biāo)
2、依賴
(1)依賴的范圍
(2)依賴傳遞
(3)依賴阻斷
第一種true
第二種exclusion(暴力)
七、maven繼承與聚合
1、繼承
2、聚合
一、什么是Maven
Maven翻譯為“專家”,“內(nèi)行”
Maven是跨平臺的項目管理工具。主要服務(wù)于基于Java平臺的項目構(gòu)建,依賴管理和項目信息管理。
二、maven下載和安裝目錄
下載maven,配置環(huán)境變量,修改maven文件下config目錄下的setting文件更改在第50行改中央倉庫為d盤ripositoty,改鏡像(默認(rèn)為外國鏡像下載較慢,可以更改為阿里云)??梢酝ㄟ^命令提示符檢查maven版本信息。
1、安裝目錄解析
bin:含有mvn運(yùn)行的腳本
boot:含有plexus-classworlds類加載器框架
conf:含有settings.xml配置文件
lib:含有Maven運(yùn)行時所需要的java類庫
2、maven倉庫
Maven 倉庫是項目中依賴的第三方庫,這個庫所在的位置叫做倉庫。
Maven 倉庫能幫助我們管理構(gòu)件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。
倉庫的類型有:本地倉庫(local)中央倉庫(central)遠(yuǎn)程倉庫(remote)
二、maven項目創(chuàng)建(Hello)
Hello項目創(chuàng)建
項目Hello根目錄建立pom.xml
Hello.java文件
package cn.tx.maven;
public class Hello {
public String sayHello(String name){
return "Hello "+name+"!";
}
}
HelloTest.java文件
package cn.tx.maven;
import org.junit.Test;
import static junit.framework.Assert.*;
public class HelloTest {
@Test
public void testHello(){
Hello hello = new Hello();
String results = hello.sayHello("maven");
assertEquals("Hello maven!",results);
}
}
四、maven項目操作
mvn compile編譯(根目錄產(chǎn)生target文件)
mvn clean(清理target文件)
mvn clean test(測試)
mvn package(打包,target目錄下出現(xiàn)jar包)
mvn install(jar包引入本地庫)
五、創(chuàng)建HelloFriend
建立pom.xml
創(chuàng)建HelloFriend.java
package cn.tx.maven;
import cn.tx.maven.Hello;
public class HelloFriend {
public String sayHelloToFriend(String name){
Hello hello = new Hello();
String str = hello.sayHello(name)+" I am "+this.getMyName();
System.out.println(str);
return str;
}
public String getMyName(){
return "John";
}
}
創(chuàng)建HelloFriendTest.java
package cn.tx.maven;
import static junit.framework.Assert.assertEquals;
import org.junit.Test;
import cn.tx.maven.Hello;
public class HelloFriendTest {
@Test
public void tesHelloFriend(){
HelloFriend helloFriend = new HelloFriend();
String results = helloFriend.sayHelloToFriend("zhangsan");
assertEquals("Hello zhangsan! I am John",results);
}
}
在pom中,hellofriend引入了hello的依賴所以需要在maven倉庫中有hello的jar包(進(jìn)行install)。
六、maven項目中pom.xml標(biāo)簽解釋
以hellofriend為例
groupId:組織標(biāo)識,一般為:公司網(wǎng)址的反寫+項目名 artifactId:項目名稱,一般為:項目名-模塊名 version:版本號 形式為0.0.1-SNAPSHOT: ????????第一個 0 表示大版本號,第二個 0 表示分支版本號,第三個 0 表示小版本號 ????????SNAPSHOT -- 快照版本,ALPHA -- 內(nèi)側(cè)版本,BETA -- 公測版本,RELEASE -- 穩(wěn)定版本,GA -- 正式發(fā)布 packaging:打包的方式,如:pom, jar, maven-plugin, ejb, war, ... clissifier:用來幫助定義構(gòu)件輸出的一些附屬構(gòu)件。
1、坐標(biāo)
在 Maven 中坐標(biāo)是構(gòu)件的唯一標(biāo)識,Maven 坐標(biāo)的元素包括 groupId、artifactId、version、packaging、classifier。上述5個元素中,groupId、artifactId、version 是必須定義的,packaging 是可選的 ( 默認(rèn)為 jar )。
2、依賴
scope: 控制該依賴包在什么情況下會被加到 classpath 中;
(1)依賴的范圍
共 6 種 scope,包括:compile、provided、runtime、test、system、import。例如上圖的junit,只在測試中使用,則選擇test即可,默認(rèn)為compile
Compile:編譯依賴范圍。默認(rèn)使用此依賴范圍,其下的maven依賴,對于編譯,測試,運(yùn)行classpath都有效。
Test:測試依賴范圍。只對測試classpath有效,編譯主代碼或運(yùn)行項目時無法使用此依賴。典型例子如junit。
Provided:已提供依賴范圍。其對于編譯與測試classpath有效,運(yùn)行時無效。如在web開發(fā)時,只有在編譯和測試時才用到servlet-api,將其設(shè)置為此范圍,在運(yùn)行時servlet-api由web容器提供,無須依賴。并且在打war包時,此范圍的依賴不會打在WEB-INF/lib下。
Runtime:運(yùn)行時依賴范圍。與provided相對,運(yùn)行時classpath有效。典型例子如jdbc(編寫是接口規(guī)范運(yùn)行是提供具體實現(xiàn)類需要jar包)。
(2)依賴傳遞
創(chuàng)建MakeFriend
第一直接依賴:?? HelloFriend項目依賴Hello項目? 第二直接依賴:?? MakeFriend項目依賴HelloFriend項目
注意:依賴傳遞有范圍
(3)依賴阻斷
第一種
在HelloFriend中寫入代碼,然后將其install到本地庫,MakeFriend就會依賴于HelloFriend但不會依賴于Hello。
第二種exclusion(暴力)
直接在MakeFriend中寫入exclusion
七、maven繼承與聚合
1、繼承
創(chuàng)建好父項目后右鍵新建module,創(chuàng)建子項目繼承父項目
可以繼承的pom元素
groupId :項目組 ID ,項目坐標(biāo)的核心元素;version :項目版本,項目坐標(biāo)的核心元素; description :項目的描述信息; organization :項目的組織信息; inceptionYear :項目的創(chuàng)始年份; url :項目的 url 地址 develoers :項目的開發(fā)者信息; contributors :項目的貢獻(xiàn)者信息; distributionManagerment :項目的部署信息; issueManagement :缺陷跟蹤系統(tǒng)信息; ciManagement :項目的持續(xù)繼承信息; scm :項目的版本控制信息; mailingListserv :項目的郵件列表信息;properties :自定義的 Maven 屬性;dependencies :項目的依賴配置;dependencyManagement :醒目的依賴管理配置; repositories :項目的倉庫配置; build :包括項目的源碼目錄配置、輸出目錄配置、插件配置、插件管理配置等; reporting :包括項目的報告輸出目錄配置、報告插件配置等。
2、聚合
一個父項目可以創(chuàng)建多個子項目
柚子快報激活碼778899分享:java Maven學(xué)習(xí)筆記
文章鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。