日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Maven使用教程(转)

發(fā)布時(shí)間:2025/7/14 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Maven使用教程(转) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Maven使用教程

1. Maven簡(jiǎn)介

1. Maven的出發(fā)點(diǎn)

在進(jìn)行軟件開發(fā)的過程中,無論什么項(xiàng)目,采用何種技術(shù),使用何種編程語言,我們 都要重復(fù)相同的開發(fā)步驟:編碼,測(cè)試,打包,發(fā)布,文檔。實(shí)際上這些步驟是完全重復(fù)性的工作。那為什么讓軟件開發(fā)人員去重復(fù)這些工作?開發(fā)人員的主要任務(wù) 應(yīng)該是關(guān)注商業(yè)邏輯并去實(shí)現(xiàn)它,而不是把時(shí)間浪費(fèi)在學(xué)習(xí)如何在不同的環(huán)境中去打包,發(fā)布,。。。

Maven正是為了將開發(fā)人員從這些任務(wù)中解脫出來而誕生的。?

2. Maven能做什么?

?Maven是由早期為Jakarta Turbine定制的構(gòu)建工具發(fā)展而來的,現(xiàn)在成為了一個(gè)獨(dú)立的軟件項(xiàng)目管理工具。Maven能夠:
1)理解并管理整個(gè)軟件開發(fā)周期,重用標(biāo)準(zhǔn)的構(gòu)建過程,比如:編譯,測(cè)試,打包等。同時(shí)Maven還可以通過相應(yīng)的元數(shù)據(jù),重用構(gòu)建邏輯到一個(gè)項(xiàng)目。
2)Maven負(fù)責(zé)整個(gè)項(xiàng)目的構(gòu)建過程。開發(fā)人員只需要描述項(xiàng)目基本信息在一個(gè)配置文件中:pom.xml。也就是說,Maven的使用者只需要回答“What”而不是“How”。?

3. Maven并不只是一個(gè)構(gòu)建工具,她還可以提供:
1)聲明式依賴性管理
2)集中的組件庫管理
3)文檔的自動(dòng)生成
4)報(bào)告的自動(dòng)生成

4. Maven設(shè)計(jì)原則
?1)Convention Over Configuration (約定優(yōu)于配置)。在現(xiàn)實(shí)生活中,有很多常識(shí)性的東西,地球人都知道。比如說:如何過馬路(紅燈停綠燈行),如何開門,關(guān)門等。對(duì)于這些事情,人們已經(jīng)有了默認(rèn)的約定。

在軟件開發(fā)過程中,道理也是類似的,如果我們事先約定好所有項(xiàng)目的目錄結(jié)構(gòu),標(biāo)準(zhǔn)開發(fā)過程(編譯,測(cè)試,。。。),所有人都遵循這個(gè)約定。軟件項(xiàng)目的管理就會(huì)變得簡(jiǎn)單很多。在現(xiàn)在流行的很多框架中,都使用了這個(gè)概念,比如EJB3和 Ruby on Rails。在Maven中默認(rèn)的目錄結(jié)構(gòu)如下:


由上圖可以看出以下幾個(gè)標(biāo)準(zhǔn)的Maven目錄:

  • src:源代碼目錄。所有的源代碼都被放在了這個(gè)目錄下。在這個(gè)目錄下又包括了:
    ?1) main:所有的源代碼放在這里。對(duì)于Java項(xiàng)目,還有一個(gè)下級(jí)子目錄:java. 對(duì)于Flex項(xiàng)目則是flex,。。。
    ?2) test:所有的單元測(cè)試類放在這里。
  • target:所有編譯過的類文件以及生成的打包文件(.jar, .war, ...)放在這里。

2)Reuse Build Logic (重用構(gòu)建邏輯):Maven把構(gòu)建邏輯封裝到插件中來達(dá)到重用的目的。這樣在Maven就有用于編譯的插件,單元測(cè)試的插件,打包的插件,。。。Maven可以被理解成管理這些插件的框架。
3)Declarative Execution (聲明式執(zhí)行):Maven中所有的插件都是通過在POM中聲明來定義的。Maven會(huì)理解所有在POM中的聲明,并執(zhí)行相應(yīng)的插件。

5. 創(chuàng)建一個(gè)Maven項(xiàng)目(在linux中安裝過程類似)

1) 下載Maven:http://maven.apache.org/

2) 解壓縮下載的zip文件到本地目錄下,比如:D:\Maven

3) 添加D:\Maven\bin到環(huán)境變量PATH中

4) 在命令行下運(yùn)行:?

mvn?-version??或者 mvn -v

你應(yīng)該看到如下圖所示的Maven版本號(hào):

5) 運(yùn)行如下命令創(chuàng)建一個(gè)Maven項(xiàng)目:

mvn archetype:create -DgroupId=net.jianxi.tutorials
-DartifactId=helloworld
-DpackageName=net.jianxi.tutorials

該項(xiàng)目的目錄結(jié)構(gòu)如下圖所示:

現(xiàn)在就可以運(yùn)行一些Maven命令了
編譯: mvn compile
單元測(cè)試: mvn test
構(gòu)建并打包: mvn package
清理: mvn clean
安裝 mvn clean install

2. pom.xml配置初步

1. 創(chuàng)建項(xiàng)目并更改項(xiàng)目基本配置信息

在命令行下運(yùn)行如下命令創(chuàng)建一個(gè)項(xiàng)目:

mvn archetype:create -DgroupId=net.jianxi.tutorials -DartifactId=numopers -DpackageName=net.jianxi.tutorials -Dversion=1.0

進(jìn)入到numopers目錄,打開pom.xml,該文件內(nèi)容如下:

<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: 通常為項(xiàng)目的頂級(jí)包名。
  • artifactId: 通常為項(xiàng)目名
  • version:項(xiàng)目的版本號(hào),在開發(fā)的不同階段,你需要更改這個(gè)版本號(hào)。
  • packaging:項(xiàng)目發(fā)布時(shí)的打包類型。比如對(duì)于普通Java程序打包為jar文件;對(duì)于Java web項(xiàng)目則打包為war文件。
  • name:通常也是項(xiàng)目名
  • url:項(xiàng)目的主頁。

2. 添加源代碼

在你的項(xiàng)目的src\main\java\net\jianxi\tutorials目錄下,刪除原有的App.java, 添加一個(gè)新的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 }

之后可運(yùn)行如下命令進(jìn)行編譯:

mvn compile

你應(yīng)該可以看到如下結(jié)果(如果你是第一次用maven來編譯文件,maven會(huì)鏈接到http://repo.maven.apache.org/maven2上下載為解決依賴性所需的pom文件和相應(yīng)的jar包,在linux下的默認(rèn)存放目錄文~/.m2):

3. 添加JUnit 4.x單元測(cè)試類

在你的項(xiàng)目的src\test\java\net\jianxi\tutorials目錄下,刪除原有的AppTest.java, 添加一個(gè)新的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版本號(hào)為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>
現(xiàn)在你可以運(yùn)行一下命令來自動(dòng)測(cè)試了:

mvn test

如果測(cè)試通過,你可以看到如下結(jié)果(同樣地,如果你是第一次進(jìn)行測(cè)試,maven仍然會(huì)下載頂級(jí)pom.xml中所需的依賴性pom文件和相應(yīng)jar包):

轉(zhuǎn)載自:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033781.html

轉(zhuǎn)載于:https://www.cnblogs.com/itgg168/archive/2012/11/27/2790406.html

總結(jié)

以上是生活随笔為你收集整理的Maven使用教程(转)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。