maven的作用.
Maven 是一個項目管理和構建自動化工具。可以方便我們導入jar包。
maven的安裝.
- 要想安裝maven,首先你需要安裝jdk,並且配置jdk環境變量。右鍵點擊計算機,選擇屬性。
- 下載maven壓縮包,並且解壓。網址*maven
- 配置maven的環境變量。在環境變量中,添加 MAVEN_HOME=”你解壓的maven的所在位置”(比如:E:\maven\apache-maven-3.3.3).在環境變量path中,后面添加 %MAVEN_HOME%\bin;.
- 測試是否安裝成功。進入cmd中,執行mvn –v;如果輸出maven的信息,那么則安裝成功。如圖:
eclipse中配置maven
- 打開eclipse軟件,如果沒有。選擇工具欄中->help->install new softwore->輸入網址:*eclipse中加入maven。將maven插件安裝到eclipse中。如果有,略過這一步。
- 選擇工具欄->windows->preferences->找到maven的目錄。打開Installations,添加自己本地安裝的maven目錄。
- 選擇工具欄->windows->preferences->找到maven的目錄。打開User Setting,添加自己本地安裝的maven目錄。
- 找到安裝的maven目錄下的conf下的setting.xml,可以修改本地倉庫jar包存儲位置。找到localRepository標簽,可以選擇本地倉庫位置。例如:
<localRepository>E:/maven/apache-maven-3.3.3/repository</localRepository>
- 將setting.xml拷貝到自己本地倉庫目錄下(未修改本地倉庫時,是.m2下的repository)修改了本地倉庫,就去修改的目錄下。修改其中mirror標簽內容.
<mirror> <id>public</id> <name>Public Repositories</name> <url>http://192.169.0.205:8081/nexus/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror>
-
- Mirror標簽中:id, name是該鏡像的唯一定義符。id用來區分不同的mirror元素。
- url是該鏡像的URL。構建系統會優先考慮使用該URL,而非使用默認的服務器URL。
- mirrorOf是被鏡像的服務器的id。例如,如果我們要設置了一個Maven中央倉庫* maven中央倉庫的鏡像,就需要將該元素設置成central。這必須和中央倉庫的id central完全一致。本例中,我們使用了公司的maven倉庫。所以mirrorOf標簽和我們公司的倉庫id相同。
eclipse中導入和創建maven項目
導入maven項目
新建maven項目
- 在eclipse工具欄中找到file->new->others->maven->maven project點擊。
- 選擇Use default Workspace location 點擊下一步。
- 選擇Artifact Id 最后為web-app的,點擊下一步。這樣我們就建立了一個maven的web項目。
- 填上自己想要建立項目的獨立標識group id和artifact id.完成。
解析pom.xml
<modelVersion>4.0.0</modelVersion> 聲明項目描述符遵循哪一個POM模型版本。模型本身的版本很少改變,雖然如此,但它仍然是必不可少的,這是為了當Maven引入了新的特性或者其他模型變更的時候,確保穩定性。
<groupId>com.3h</groupId> 項目的全球唯一標識符,通常使用全限定的包名區分該項目和其他項目。並且構建時生成的路徑也是由此生成, 如com.3h生成的相對路徑為:/com/3h.
<artifactId>fund</artifactId> 構件的標識符,它和group ID一起唯一標識一個構件。換句話說,你不能有兩個不同的項目擁有同樣的artifact ID和groupID;在某個特定的group ID下,artifact ID也必須是唯一的。構件是項目產生的或使用的一個東西,Maven為項目產生的構件包括:JARs,源碼,二進制發布和WARs等.
<packaging>war</packaging> 項目產生的構件類型,例如jar、war、ear、pom。插件可以創建他們自己的構件類型,所以前面列的不是全部構件類型.
在pom.xml中配置倉庫的位置
<repositories> <repository> <id>public</id> <name>Public Repositories</name> <url>http://192.169.0.205:8081/nexus/content/groups/public/</url> </repository> </repositories>
- 作用:由於不同的項目,可能需要不同的倉庫位置,所以在pom.xml中配置倉庫。
maven中如何加載jar包的依賴
<dependencies> <!-- Spring framework 4.2.3 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.3.RELEASE</version> </dependency> </dependencies>
- 上例中,我們使用了Spring framework 4.2.3的jar包,那么我們只需要拿到這個jar包在倉庫中存儲的標示(groupId,artifactId),以及版本(version).他會首先從我們配置的倉庫位置尋找這些jar包,如果沒有,則會從maven的中央倉庫中尋找這些jar包,進行加載,並且一些相關依賴的jar包,也會加載。
項目中用到的一些插件
<plugins> <plugin><!-- 編譯說明 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <!--作為DOM對象的配置--> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> 這里就是告訴我們的代碼使用的是什么jdk版本。
<plugin>復制文件 <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <phase>compile</phase> 綁定了目標的構建生命周期階段,如果省略,目標會被綁定到源數據里配置的默認階段 <goals> 配置的執行目標 <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${project.build.outputDirectory}</outputDirectory> <resources> <resource> <directory>src/main/resources/{dev}</directory> </resource> </resources> <overwrite>true</overwrite> </configuration> </execution> </executions> </plugin> 這是拷貝配置信息的一段xml,由於我們有三個環境,所以為了便捷可以直接使用插件,進行拷貝一些配置信息。
<plugin>打包聲明 <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <warName>3hfund</warName> <failOnMissingWebXml>false</failOnMissingWebXml> <webResources> <resource> <directory>${basedir}/src/main/webapp</directory> <filtering>true</filtering> <includes> <include>WEB-INF/web.xml</include> </includes> </resource> </webResources> </configuration> </plugin> 使用了maven-war-plugin插件進行打包。
<profile> 可以通過 -P ID 來激活 <id>PUB</id> ID 標識符 <properties> <env>pub</env> properties 定義 key-value, 這里 key 是 env, value 是 PROD </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> 定義了打包過程中使用的配置文件,打包使用 mvn package –P PUB則打包配置文件是pub的war包。
Pom.xml詳細解析:請看*pom.xml詳解Profile詳解:*profile詳解
maven中常用命令
- 當我們修改了pom.xml中的內容時,我們要更新一下項目。右鍵項目名,找到maven,選擇update project.
- mvn package –P PUB 使用pub下面的配置文件進行打包
- mvn compile //編譯源代碼
- mvn test-compile//編譯測試代碼
- mvn test //運行應用程序中的單元測試
- mvn site //生成項目相關信息的網站
- mvn clean //清除目標目錄中的生成結果
- 在eclipse下如何使用maven命令