Maven使用教程(转)
Maven使用教程
1. Maven簡介
1. Maven的出發點
在進行軟件開發的過程中,無論什么項目,采用何種技術,使用何種編程語言,我們 都要重復相同的開發步驟:編碼,測試,打包,發布,文檔。實際上這些步驟是完全重復性的工作。那為什么讓軟件開發人員去重復這些工作?開發人員的主要任務 應該是關注商業邏輯并去實現它,而不是把時間浪費在學習如何在不同的環境中去打包,發布,。。。
Maven正是為了將開發人員從這些任務中解脫出來而誕生的。?
2. Maven能做什么?
?Maven是由早期為Jakarta Turbine定制的構建工具發展而來的,現在成為了一個獨立的軟件項目管理工具。Maven能夠:
1)理解并管理整個軟件開發周期,重用標準的構建過程,比如:編譯,測試,打包等。同時Maven還可以通過相應的元數據,重用構建邏輯到一個項目。
2)Maven負責整個項目的構建過程。開發人員只需要描述項目基本信息在一個配置文件中:pom.xml。也就是說,Maven的使用者只需要回答“What”而不是“How”。?
3. Maven并不只是一個構建工具,她還可以提供:
1)聲明式依賴性管理
2)集中的組件庫管理
3)文檔的自動生成
4)報告的自動生成
4. Maven設計原則
?1)Convention Over Configuration (約定優于配置)。在現實生活中,有很多常識性的東西,地球人都知道。比如說:如何過馬路(紅燈停綠燈行),如何開門,關門等。對于這些事情,人們已經有了默認的約定。
在軟件開發過程中,道理也是類似的,如果我們事先約定好所有項目的目錄結構,標準開發過程(編譯,測試,。。。),所有人都遵循這個約定。軟件項目的管理就會變得簡單很多。在現在流行的很多框架中,都使用了這個概念,比如EJB3和 Ruby on Rails。在Maven中默認的目錄結構如下:
由上圖可以看出以下幾個標準的Maven目錄:
- src:源代碼目錄。所有的源代碼都被放在了這個目錄下。在這個目錄下又包括了:
?1) main:所有的源代碼放在這里。對于Java項目,還有一個下級子目錄:java. 對于Flex項目則是flex,。。。
?2) test:所有的單元測試類放在這里。
- target:所有編譯過的類文件以及生成的打包文件(.jar, .war, ...)放在這里。
2)Reuse Build Logic (重用構建邏輯):Maven把構建邏輯封裝到插件中來達到重用的目的。這樣在Maven就有用于編譯的插件,單元測試的插件,打包的插件,。。。Maven可以被理解成管理這些插件的框架。
3)Declarative Execution (聲明式執行):Maven中所有的插件都是通過在POM中聲明來定義的。Maven會理解所有在POM中的聲明,并執行相應的插件。
5. 創建一個Maven項目(在linux中安裝過程類似)
1) 下載Maven:http://maven.apache.org/
2) 解壓縮下載的zip文件到本地目錄下,比如:D:\Maven
3) 添加D:\Maven\bin到環境變量PATH中
4) 在命令行下運行:?
mvn?-version??或者 mvn -v
你應該看到如下圖所示的Maven版本號:
5) 運行如下命令創建一個Maven項目:
mvn archetype:create -DgroupId=net.jianxi.tutorials-DartifactId=helloworld
-DpackageName=net.jianxi.tutorials
該項目的目錄結構如下圖所示:
現在就可以運行一些Maven命令了
編譯: mvn compile
單元測試: mvn test
構建并打包: mvn package
清理: mvn clean
安裝 mvn clean install
2. pom.xml配置初步
1. 創建項目并更改項目基本配置信息
在命令行下運行如下命令創建一個項目:
mvn archetype:create -DgroupId=net.jianxi.tutorials -DartifactId=numopers -DpackageName=net.jianxi.tutorials -Dversion=1.0
進入到numopers目錄,打開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>net.jianxi.tutorials</groupId>
<artifactId>numopers</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>numopers</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
其中:
- groupId: 通常為項目的頂級包名。
- artifactId: 通常為項目名
- version:項目的版本號,在開發的不同階段,你需要更改這個版本號。
- packaging:項目發布時的打包類型。比如對于普通Java程序打包為jar文件;對于Java web項目則打包為war文件。
- name:通常也是項目名
- url:項目的主頁。
2. 添加源代碼
在你的項目的src\main\java\net\jianxi\tutorials目錄下,刪除原有的App.java, 添加一個新的Java源文件: NumOpers.java, 其源代碼如下:
1 package net.jianxi.tutorials; 2 3 public class NumOpers 4 { 5 public int add(int i, int j) { 6 return i + j; 7 } 8 9 public int minus(int i, int j) { 10 return i - j; 11 } 12 }之后可運行如下命令進行編譯:
mvn compile
你應該可以看到如下結果(如果你是第一次用maven來編譯文件,maven會鏈接到http://repo.maven.apache.org/maven2上下載為解決依賴性所需的pom文件和相應的jar包,在linux下的默認存放目錄文~/.m2):
3. 添加JUnit 4.x單元測試類
在你的項目的src\test\java\net\jianxi\tutorials目錄下,刪除原有的AppTest.java, 添加一個新的Java源文件: NumOpersTest.java, 其源代碼如下:
1 package net.jianxi.tutorials; 2 import org.junit.* ; 3 import static org.junit.Assert.* ; 4 5 public class NumOpersTest { 6 NumOpers no = new NumOpers(); 7 @Test 8 public void testAdd() { 9 assertEquals(no.add(3,5), 8); 10 } 11 12 @Test 13 public void testMinus() { 14 assertEquals(no.minus(10,5), 5); 15 } 16 }4. 配置pom.xml限定JDK版本號為5, 并支持JUnit 4.7
修改后的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>net.jianxi.tutorials</groupId>
<artifactId>numopers</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>numopers</name>
<url>http://bluesfeng.javaeye.com</url>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId><version>4.7</version><scope>test</scope>
</dependency>
</dependencies>
</project>
現在你可以運行一下命令來自動測試了:
mvn test
如果測試通過,你可以看到如下結果(同樣地,如果你是第一次進行測試,maven仍然會下載頂級pom.xml中所需的依賴性pom文件和相應jar包):
轉載自:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033781.html
轉載于:https://www.cnblogs.com/itgg168/archive/2012/11/27/2790406.html
總結
以上是生活随笔為你收集整理的Maven使用教程(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转:生产计划问题
- 下一篇: Opera 扩展文章目录