版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協定,轉載請附上原文出處連結和本聲明。
本文連結:https://blog.csdn.net/zhao1299002788/article/details/102135509
maven jar倉庫 :存放maven項目使用的jar包.
中央倉庫,存放99%免費開源項目jar包,apache公司負責維護的,以T為機關的存儲.
例如 : struts2-core-2.3.24 版本
maven項目通過坐标去倉庫中,引入需要的jar包
groupId 公司資訊, org.apache.struts
artifactId 項目資訊, struts2-core
version 版本資訊, 2.3.24
如果倉庫中jar包很多,也可以對倉庫建立索引提升查詢速度.
pom檔案存放maven jar包的坐标.
maven依賴管理 : 就是對jar包管理的過程.
項目的一鍵管理:
一鍵建構,實際是指,對于項目的某個流程動作,可以通過maven一個指令實作(編譯---測試--- 運作 --打包---安裝)
什麼是建構?
指的是項目從編譯 --- 測試 --- 運作 --打包 ----安裝整個過程都交給maven進行管理,這個過程稱為建構.
maven_home 的環境變量配置
%MAVEN_HOME%\bin;
maven_home 是maven程式的安裝路徑.
注意實作 : maven環境變量配置,必須要求,配置過JAVA_HOME變量名;
JAVA_HOME 必須是到jdk的安裝目錄可以看到bin;
JAVA_HOME 路徑,不要有(x86)
配置環境變量是為了在指令行輸入的指令,電腦會到path路徑中尋找,你輸入的指令,mvn.
maven工程的目錄結構 :
src 源碼檔案夾
main
java 開發的java代碼;
resources 開發使用的配置檔案;
webapp 相當于WebCotent 存放web工程的資源檔案夾,css,jsp,image
text
java 測試使用的java代碼
resources
pom.xml檔案 是maven工程的核心配置檔案,存放maven工程的坐标資訊和maven項目使用的jar包坐标資訊,其餘的一些查詢配置.
隻能滿足maven工程目錄結構的項目,才能使用maven指令運作.
根據maven約定,一個比較标準的maven java web項目, 結合eclipse通常可以看到結構如下 :
src/main/java java主要代碼存放目錄
src/main/resources java配置檔案存放目錄
src/test/java java測試代碼存放目錄
JRE System Library jre中的一些jar包映射
Maven Dependencies 根據pom.xml配置的依賴而導入的jar包映射
src/main/webapp web相關的檔案,如html等
src/test 這個目錄暫時還沒用過
target maven項目輸出目錄,例如生成多的war包
pom.xml maven項目最重要的一個檔案
Maven指令:
compile :
compile是maven工程的編譯指令,作用是将src/main/java下的檔案編譯為class檔案輸出到target目錄下.
test :
test是maven工程的測試指令,mvn test,會執行src/test/java 下的單元測試類.
clean :
clean是maven工程的清理指令,執行clean會删除target目錄及内容.
package :
package是maven工程的打包指令,對于java工程執行package打成jar包,對于web工程打成war包.
install :
install 是maven工程的安裝指令,執行install将maven打成jar包或者war包釋出到本地倉庫.
deploye部署指令 :
是将打成的jar包或者war部署到公司私服伺服器.
某些工具類,處理字元串,格式化日期,解析xml檔案.
從運作結果中,可以看出:
當後媽的指令執行時,前面的操作過程也都會自動執行,在同一生命周期内運作後面的指令,會自動執行前面的指令.
三套生命周期 :
maven 對項目建構過程分為三套互相獨立的生命周期,請注意這裡說的是"三套",而且"互相獨立",這三套生命周期分别是:
Clean Lifecycle 在進行真正的建構之前進行一些清理工作.
Default Lifecycle 建構的核心部分,編譯,測試,打包,安裝,部署等.
Site Lifecycle 生成項目報告,站點,釋出站點.
jar包沖突問題 :解決辦法
<!-- maven項目使用jar包的坐标節點 -->
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
<scope>provided</scope> <!-- 這個就解決jar包沖突問題 -->
</dependency>
</dependencies>
Maven的目錄結構 :
bin : 放入了一些指令 : mvn tomcat:run.
boot : 放了一些引導程式,類加載器.
conf : 配置檔案.
lib : maven本身運作所需的jar包.
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.baidu</groupId>
<artifactId>struts_maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.24</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 設定編譯版本為1.7 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<argLine>-Dfile.encoding=UTF-8</argLine>
</properties>
</project>
依賴範圍包括 :
依賴範圍 : 對于編譯classpath有效 對于測試classpath有效 對于運作時classpath有效 例子------------------------------
compile Y Y Y spring-core
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y JDBC驅動
system Y Y - 本地的,Maven倉庫之外的類庫.
複制