Maven使用說明


maven的作用.

Maven 是一個項目管理和構建自動化工具。可以方便我們導入jar包。

maven的安裝.

  1. 要想安裝maven,首先你需要安裝jdk,並且配置jdk環境變量。右鍵點擊計算機,選擇屬性。
    Maven1.jpg
  2. 下載maven壓縮包,並且解壓。網址*maven
  3. 配置maven的環境變量。在環境變量中,添加 MAVEN_HOME=”你解壓的maven的所在位置”(比如:E:\maven\apache-maven-3.3.3).在環境變量path中,后面添加 %MAVEN_HOME%\bin;.
    Maven2.jpg
  4. 測試是否安裝成功。進入cmd中,執行mvn –v;如果輸出maven的信息,那么則安裝成功。如圖:
    Maven3.jpg

eclipse中配置maven

  1. 打開eclipse軟件,如果沒有。選擇工具欄中->help->install new softwore->輸入網址:*eclipse中加入maven。將maven插件安裝到eclipse中。如果有,略過這一步。
  2. 選擇工具欄->windows->preferences->找到maven的目錄。打開Installations,添加自己本地安裝的maven目錄。
    Maven4.jpg
  3. 選擇工具欄->windows->preferences->找到maven的目錄。打開User Setting,添加自己本地安裝的maven目錄。
    Maven5.jpg
  4. 找到安裝的maven目錄下的conf下的setting.xml,可以修改本地倉庫jar包存儲位置。找到localRepository標簽,可以選擇本地倉庫位置。例如:
    <localRepository>E:/maven/apache-maven-3.3.3/repository</localRepository>
  5. 將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項目

  1. 在目錄空間中,右鍵點擊import->maven->Existing Maven Project.選擇上自己要導入的maven項目。
    Maven6.jpg
  2. 打開pom.xml,里面是maven的xml文件。

新建maven項目

  1. 在eclipse工具欄中找到file->new->others->maven->maven project點擊。
  2. 選擇Use default Workspace location 點擊下一步。
  3. 選擇Artifact Id 最后為web-app的,點擊下一步。這樣我們就建立了一個maven的web項目。
    Maven7.jpg
  4. 填上自己想要建立項目的獨立標識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中常用命令

  1. 當我們修改了pom.xml中的內容時,我們要更新一下項目。右鍵項目名,找到maven,選擇update project.
  2. mvn package –P PUB 使用pub下面的配置文件進行打包
  3. mvn compile //編譯源代碼
  4. mvn test-compile//編譯測試代碼
  5. mvn test //運行應用程序中的單元測試
  6. mvn site //生成項目相關信息的網站
  7. mvn clean //清除目標目錄中的生成結果
  8. 在eclipse下如何使用maven命令
run as->run configurations->選擇 maven build->點擊新增,選擇好啟動的項目,輸入maven命令。不需要mvn。
Maven8.jpg


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM