maven只用來管理java項目,也是用java開發的
傳統的項目因為包的管理有很多問題,所以才有的maven的誕生:
1. 項目開始的時候,確定項目中可能要使用到的包,然后下載包,復制粘貼到項目里面去--》maven只需要再確定包以后,將包的配置信息寫進去就可以
2. 包導入完成之后,可能會有包沖突的問題,需要在原來的jar包里面找出沖突的jar包,然后刪除--》maven只需要在pom.xml配置文件中刪除某一個節點就可以;
3. 原來的項目大小可能很大,但是在使用maven以后,項目的大小會變得很小;
使用maven我們需要了解以下的概念:
一個java項目的開發包括一下的幾個步驟:
1. 編碼
2. 編譯
3. 測試
4. 運行
5. 打包
6. 部署
而maven可以幫助我們完成:編譯,測試,運行,打包,部署;也就是說我們只需要完成編碼,其他的部分都可以交給maven去做。
下面開始安裝和配置maven:
1. 下載maven
2. 配置環境變量
MAVEN_HOME:D:\Software\apache-maven-3.5.3
把maven_home添加到path里面:%MAVEN_HOME%\bin;
測試配置是否正確:cmd->mvn -v
下面介紹一個maven的幾種倉庫:
1. 本地倉庫,自己來維護
2. 遠程倉庫(私服):一般是由公司維護
3. 中央倉庫:maven團隊維護
下面放一張使用maven以后的項目目錄結構:
maven的常用命令:
1. clean : 清理編譯的文件
2. compile:編譯了主目錄的文件
3. test:編譯並運行了test目錄的代碼
4. package:打包
5.install:就是把項目發不到本地倉庫
上面的命令是按照使用順序排列的
多個命令可以同時使用:mvn clean package
下面說一下maven在eclipse中的配置步驟:
1. 配置maven的安裝路徑
2. 配置maven的本地倉庫地址
下面是在eclipse中創建一個maven項目:
1. 新建maven項目
2. 跳過配置,直接生成完整的maven目錄結構
3. 填寫pom配置文件的初始配置
4. 完成后的目錄如下所示:
5. 處理紅色錯誤
手動在webapp文件夾下創建一個WEB-INF文件夾,在里面放一個web.xml文件
6. 處理編譯版本
在pom.xml中添加如下代碼:
<build> <!-- 配置了很多插件 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
7.創建一個servlet
8. 修改web.xml刪除重復的代碼
添加jar包,在pom.xml中添加如下代碼:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <scope>test</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> </dependencies>
可以看見jar包已經存在於項目中了:
8. 啟動項目
右鍵項目-》run as-》maven build
下面是依賴的管理
1. 添加依賴
打開maven倉庫的視圖
2. 重建索引
1、 創建maven項目(同上)
2、 跳過骨架(同上)
3、 填寫坐標信息(同上)
4、 添加web.xml文件(同上)
5、 修改編譯版本(同上)
添加坐標 選擇Dependencies標簽 點擊add
3. 手動輸入要添加的依賴的配置屬性,選擇版本
可以看到pom.xml文件里面多了以下的內容
maven管理jar包的幾個原則
1. 第一聲明優先原則
<dependencies> <!-- spring-beans-4.2.4 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency> <!-- spring-beans-3.0.5 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.24</version> </dependency>
2. 路徑近者優先原則,也就是自己詳細制定jar包
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.4.RELEASE</version> </dependency>
3. 排除原則
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>2.3.24</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> </exclusions> </dependency>
4. 版本鎖定原則
<properties> <spring.version>4.2.4.RELEASE</spring.version> <hibernate.version>5.0.7.Final</hibernate.version> <struts.version>2.3.24</struts.version> </properties> <!-- 鎖定版本,struts2-2.3.24、spring4.2.4、hibernate5.0.7 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> </dependencies> </dependencyManagement>