黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

Maven 插件

maven 插件

maven 有以下三個(gè)標(biāo)準(zhǔn)的生命周期:

  • clean:項(xiàng)目清理的處理
  • default(或 build):項(xiàng)目部署的處理
  • site:項(xiàng)目站點(diǎn)文檔創(chuàng)建的處理

每個(gè)生命周期中都包含著一系列的階段(phase)。這些 phase 就相當(dāng)于 maven 提供的統(tǒng)一的接口,然后這些 phase 的實(shí)現(xiàn)由 maven 的插件來完成。

我們?cè)谳斎?mvn 命令的時(shí)候 比如 mvn clean,clean 對(duì)應(yīng)的就是 clean 生命周期中的 clean 階段。但是 clean 的具體操作是由 maven-clean-plugin 來實(shí)現(xiàn)的。

所以說 maven 生命周期的每一個(gè)階段的具體實(shí)現(xiàn)都是由 maven 插件實(shí)現(xiàn)的。

maven 實(shí)際上是一個(gè)依賴插件執(zhí)行的框架,每個(gè)任務(wù)實(shí)際上是由插件完成。maven 插件通常被用來:

  • 創(chuàng)建 jar 文件
  • 創(chuàng)建 war 文件
  • 編譯代碼文件
  • 代碼單元測(cè)試
  • 創(chuàng)建工程文檔
  • 創(chuàng)建工程報(bào)告

插件通常提供了一個(gè)目標(biāo)的集合,并且可以使用下面的語法執(zhí)行:

<code>mvn [plugin-name]:[goal-name]</code>

例如,一個(gè) java 工程可以使用 maven-compiler-plugin 的 compile-goal 編譯,使用以下命令:

<code>mvn compiler:compile</code>

 

1. 插件類型:

maven 提供了下面兩種類型的插件:

類型 描述
build plugins 在構(gòu)建時(shí)執(zhí)行,并在 pom.xml 的 元素中配置。
reporting plugins 在網(wǎng)站生成過程中執(zhí)行,并在 pom.xml 的 元素中配置。

下面是一些常用插件的列表:

插件 描述
clean 構(gòu)建之后清理目標(biāo)文件。刪除目標(biāo)目錄。
compiler 編譯 java 源文件。
surefile 運(yùn)行 junit 單元測(cè)試。創(chuàng)建測(cè)試報(bào)告。
jar 從當(dāng)前工程中構(gòu)建 jar 文件。
war 從當(dāng)前工程中構(gòu)建 war 文件。
javadoc 為工程生成 javadoc。
antrun 從構(gòu)建過程的任意一個(gè)階段中運(yùn)行一個(gè) ant 任務(wù)的集合。

 

2. 插件范例

我們已經(jīng)在我們的例子中大量使用了 maven-antrun-plugin 來輸出數(shù)據(jù)到控制臺(tái)上。讓我們用一種更好的方式理解這部分內(nèi)容,在 c:\mvn\project 目錄下創(chuàng)建一個(gè) 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>com.companyname.projectgroup</groupid>
<artifactid>project</artifactid>
<version>1.0</version>
<build>
<plugins>
   <plugin>
   <groupid>org.apache.maven.plugins</groupid>
   <artifactid>maven-antrun-plugin</artifactid>
   <version>1.1</version>
   <executions>
      <execution>
         <id>id.clean</id>
         <phase>clean</phase>
         <goals>
            <goal>run</goal>
         </goals>
         <configuration>
            <tasks>
               <echo>clean phase</echo>
            </tasks>
         </configuration>
      </execution>     
   </executions>
   </plugin>
</plugins>
</build>
</project>

接下來,打開命令終端跳轉(zhuǎn)到 pom.xml 所在的目錄,并執(zhí)行下面的 mvn 命令。

mvn clean

maven 將開始處理并顯示 clean 生命周期的 clean 階段。

[info] scanning for projects...
[info] ------------------------------------------------------------------
[info] building unnamed - com.companyname.projectgroup:project:jar:1.0
[info]    task-segment: [post-clean]
[info] ------------------------------------------------------------------
[info] [clean:clean {execution: default-clean}]
[info] [antrun:run {execution: id.clean}]
[info] executing tasks
     [echo] clean phase
[info] executed tasks
[info] ------------------------------------------------------------------
[info] build successful
[info] ------------------------------------------------------------------
[info] total time: < 1 second
[info] finished at: sat jul 07 13:38:59 ist 2012
[info] final memory: 4m/44m
[info] ------------------------------------------------------------------

上面的例子展示了以下關(guān)鍵概念:

  • 插件是在 pom.xml 中使用 plugins 元素定義的。
  • 每個(gè)插件可以有多個(gè)目標(biāo)。
  • 你可以定義階段,插件會(huì)使用它的 phase 元素開始處理。我們已經(jīng)使用了 clean 階段。
  • 你可以通過綁定到插件的目標(biāo)的方式來配置要執(zhí)行的任務(wù)。我們已經(jīng)綁定了 echo 任務(wù)到 maven-antrun-plugin 的 run 目標(biāo)。
  • 就是這樣,maven 將處理剩下的事情。它將下載本地倉庫中獲取不到的插件,并開始處理。

下一節(jié):maven 構(gòu)建 java 項(xiàng)目

maven 教程

相關(guān)文章