咱們要開發一個Java 項目,爲了保證編譯經過, 一般狀況下會去尋找jar包,這樣很容易形成項目的臃腫, maven提供了很好的項目開發規範與工具, maven 統一管理了jar包,接下來讓咱們來玩玩maven吧java
2.安裝Mavenweb
Maven 是Apache 基金會的頂級項目, 咱們能夠從http://maven.apache.org/ 下載一個apache-maven-3.0.4-bin.zip 文件,將其解壓到D:/maven 目錄下apache
這裏須要配置一下環境變量:緩存
M2_HOME=D:/maven;tomcat
MAVEN_OPTS=-Xms128m -Xmx512mapp
以上M2_HOME 是必要配置的, 若是想要Maven跑的快一點, 能夠根據本身的狀況設置MAVEN_OPTSwebapp
如今咱們能夠打開cmd,輸入:maven
mvn -vide
看到一下信息說明 Maven 安裝成功了工具
Maven給咱們帶來最直接的幫助就是jar 包獲得了統一的管理, 這些jar包存在本地倉庫,位於C:.m2目錄下(也能夠經過maven\conf\setting.xml 修改默認地址)
實際上本地倉庫能夠理解爲緩存, 由於項目會先從本地倉庫中獲取jar包, 當沒法獲取指定jar包的時候,本地倉庫會從遠程倉庫中下載jar包, 並放入本地倉庫中,以備未來使用, 這個遠程倉庫是Maven官方提供的, 能夠經過訪問 (http://search.maven.org/ ),經過圖A-1 能夠清晰的表達項目,本地倉庫,遠程倉庫之間的關係.
咱們建立一個Java Web項目,在cmd 中輸入:
mvn archetype:generate
咱們建立的Java Web項目,因此能夠選擇maven-archetype-webapp, 經過maven能夠知道如下信息:
項目groupId(組織名)-可輸入com.smart 域名的反轉
項目artifactId(構件名)-可輸入smart
項目version(版本號)-可輸入1.0
項目package(包名)-可輸入com.smart
也可使用IDEA 直接建立一個maven項目,只須要選擇File-New-Project,以下圖所示:
當打開pom.xml, 格式化之後是這樣的:
<?xml version="1.0" encoding="UTF-8"?> <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.smart</groupId> <artifactId>smart</artifactId> <version>1.0.0</version> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <junit.version>4.11</junit.version> </properties> <dependencies> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <!--compile--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compile.version}</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <!--maven 打包時想跳過單元測試--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <!--tomcat--> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <path>/${project.artifactId}</path> </configuration> </plugin> </plugins> </build>
簡單介紹一下:
modelVersion 是POM的版本號,如今是4.0.0, 默認的不須要修改
groupId,artifactId,version分別表明Maven項目的組織名,構件名,版本號,它們三個是Maven座標
packaging表示該項目的打包方式,war表示打包爲war文件,默認爲jar,表示打包爲jar文件
dependencies定義該項目的依賴關係
build表示與構件相關的配置
經過IDEA能夠很清晰的看到POM結構圖:
每一個pom.xml都應該有:
Lifecycle-生命週期
Plugins-插件
Dependencied-依賴
pom.xml文件中會有一個scope做用域, 包括如下幾種:
compile-默認做用域 編譯 測試 運行時有效
test-測試時有效
runtime-運行時有效
provided-編譯 測試有效 運行時無效
system-與provided相似 但依賴於系統資源
maven 經常使用的命令有:
mvn clean-清空target目錄
mvn compile-編譯源代碼
mvn package-生成構件包 通常爲jar或者war包
mvn install-將構件包安裝到本地倉庫
mvn deploy -N -將構件包部署到遠程倉庫
mvn tomcat:run-經過maven運行項目
mvn dependency:sources-從本地倉庫獲取源代碼
mvn -X compile - debug模式編譯項目
mvn clean install -DskipTests -U
關於maven在實際項目的實戰 後續會慢慢添加,下一次我會介紹一下如何將構件發佈到Maven中央倉庫