欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

maven中pom.xml詳細介紹

 更新時間:2017年11月03日 16:33:16   作者:劉曉春  
最近在學習maven,這篇文章主要介紹了maven中pom.xml詳細介紹,具有一定參考價值,需要的朋友可以了解下。

POM 代表工程對象模型。它是使用 Maven 工作時的基本組建,是一個 xml 文件。它被放在工程根目錄下,文件命名為 pom.xml。

POM 包含了關于工程和各種配置細節(jié)的信息,Maven 使用這些信息構(gòu)建工程。

POM 也包含了目標和插件。當執(zhí)行一個任務或者目標時,Maven 會查找當前目錄下的 POM,從其中讀取所需要的配置信息,然后執(zhí)行目標。能夠在 POM 中設置的一些配置如下:

project dependencies
plugins
goals
build profiles
project version
developers
mailing list
在創(chuàng)建 POM 之前,我們首先確定工程組(groupId),及其名稱(artifactId)和版本,在倉庫中這些屬性是工程的唯一標識。

POM 舉例

<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.project-group</groupId>
  <artifactId>project</artifactId>
  <version>1.0</version>

</project>

需要說明的是每個工程應該只有一個 POM 文件。

所有的 POM 文件需要 project 元素和三個必須的字段:groupId, artifactId,version。
在倉庫中的工程標識為 groupId:artifactId:version
POM.xml 的根元素是 project,它有三個主要的子節(jié)點:

節(jié)點 描述
groupId 這是工程組的標識。它在一個組織或者項目中通常是唯一的。例如,一個銀行組織 com.company.bank 擁有所有的和銀行相關的項目。
artifactId 這是工程的標識。它通常是工程的名稱。例如,消費者銀行。groupId 和 artifactId 一起定義了 artifact 在倉庫中的位置。
version 這是工程的版本號。在 artifact 的倉庫中,它用來區(qū)分不同的版本。例如:
com.company.bank:consumer-banking:1.0
com.company.bank:consumer-banking:1.1.

Super POM
所有的 POM 都繼承自一個父 POM(無論是否顯式定義了這個父 POM)。父 POM 也被稱作 Super POM,它包含了一些可以被繼承的默認設置。

Maven 使用 effective pom(Super pom 加上工程自己的配置)來執(zhí)行相關的目標,它幫助開發(fā)者在 pom.xml 中做盡可能少的配置,當然這些配置可以被方便的重寫。

查看 Super POM 默認配置的一個簡單方法是執(zhí)行以下命令:mvn help:effective-pom

在你的電腦上的任意目錄下創(chuàng)建一個 pom.xml 文件,使用上面提到的示例 pom 中的內(nèi)容。

在下面的例子中,我們在 C:\MVN\project 目錄中創(chuàng)建了一個 pom.xml 文件。

現(xiàn)在打開命令控制臺,到 pom.xml 所在的目錄下執(zhí)行以下 mvn 命令。

C:\MVN\project>mvn help:effective-pom

Maven 將會開始處理并顯示 effective-pom。

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'help'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - com.companyname.project-group:project-name:jar:1.0
[INFO]  task-segment: [help:effective-pom] (aggregator-style)
[INFO] ------------------------------------------------------------------------
[INFO] [help:effective-pom {execution: default-cli}]
[INFO]

.....

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: < 1 second
[INFO] Finished at: Thu Jul 05 11:41:51 IST 2012
[INFO] Final Memory: 6M/15M
[INFO] ------------------------------------------------------------------------

Effective POM 的結(jié)果就像在控制臺中顯示的一樣,經(jīng)過繼承、插值之后,使配置生效。

<?xml version="1.0" encoding="UTF-8"?>
<!-- ================================================================= -->
<!--                                  -->
<!-- Generated by Maven Help Plugin on 2012-07-05T11:41:51       -->
<!-- See: http://maven.apache.org/plugins/maven-help-plugin/      -->
<!--                                  -->
<!-- ================================================================= -->

<!-- ================================================================= -->
<!--                                  -->
<!-- Effective POM for project                     -->
<!-- 'com.companyname.project-group:project-name:jar:1.0'       -->
<!--                                  -->
<!-- ================================================================= -->

<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 h
ttp://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.companyname.project-group</groupId>
 <artifactId>project</artifactId>
 <version>1.0</version>
 <build>
  <sourceDirectory>C:\MVN\project\src\main\java</sourceDirectory>
  <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
  <testSourceDirectory>C:\MVN\project\src\test\java</testSourceDirectory>
  <outputDirectory>C:\MVN\project\target\classes</outputDirectory>
  <testOutputDirectory>C:\MVN\project\target\test-classes</testOutputDirectory>
  <resources>
   <resource>
    <mergeId>resource-0</mergeId>
    <directory>C:\MVN\project\src\main\resources</directory>
   </resource>
  </resources>
  <testResources>
   <testResource>
    <mergeId>resource-1</mergeId>
    <directory>C:\MVN\project\src\test\resources</directory>
   </testResource>
  </testResources>
  <directory>C:\MVN\project\target</directory>
  <finalName>project-1.0</finalName>
  <pluginManagement>
   <plugins>
    <plugin>
     <artifactId>maven-antrun-plugin</artifactId>
     <version>1.3</version>
    </plugin>
    <plugin>
     <artifactId>maven-assembly-plugin</artifactId>
     <version>2.2-beta-2</version>
    </plugin>
    <plugin>
     <artifactId>maven-clean-plugin</artifactId>
     <version>2.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-compiler-plugin</artifactId>
     <version>2.0.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-dependency-plugin</artifactId>
     <version>2.0</version>
    </plugin>
    <plugin>
     <artifactId>maven-deploy-plugin</artifactId>
     <version>2.4</version>
    </plugin>
    <plugin>
     <artifactId>maven-ear-plugin</artifactId>
     <version>2.3.1</version>
    </plugin>
    <plugin>
     <artifactId>maven-ejb-plugin</artifactId>
     <version>2.1</version>
    </plugin>
    <plugin>
     <artifactId>maven-install-plugin</artifactId>
     <version>2.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-jar-plugin</artifactId>
     <version>2.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-javadoc-plugin</artifactId>
     <version>2.5</version>
    </plugin>
    <plugin>
     <artifactId>maven-plugin-plugin</artifactId>
     <version>2.4.3</version>
    </plugin>
    <plugin>
     <artifactId>maven-rar-plugin</artifactId>
     <version>2.2</version>
    </plugin>
    <plugin>
     <artifactId>maven-release-plugin</artifactId>
     <version>2.0-beta-8</version>
    </plugin>
    <plugin>
     <artifactId>maven-resources-plugin</artifactId>
     <version>2.3</version>
    </plugin>
    <plugin>
     <artifactId>maven-site-plugin</artifactId>
     <version>2.0-beta-7</version>
    </plugin>
    <plugin>
     <artifactId>maven-source-plugin</artifactId>
     <version>2.0.4</version>
    </plugin>
    <plugin>
     <artifactId>maven-surefire-plugin</artifactId>
     <version>2.4.3</version>
    </plugin>
    <plugin>
     <artifactId>maven-war-plugin</artifactId>
     <version>2.1-alpha-2</version>
    </plugin>
   </plugins>
  </pluginManagement>
  <plugins>
   <plugin>
    <artifactId>maven-help-plugin</artifactId>
    <version>2.1.1</version>
   </plugin>
  </plugins>
 </build>
 <repositories>
  <repository>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
   <id>central</id>
   <name>Maven Repository Switchboard</name>
   <url>http://repo1.maven.org/maven2</url>
  </repository>
 </repositories>
 <pluginRepositories>
  <pluginRepository>
   <releases>
    <updatePolicy>never</updatePolicy>
   </releases>
   <snapshots>
    <enabled>false</enabled>
   </snapshots>
   <id>central</id>
   <name>Maven Plugin Repository</name>
   <url>http://repo1.maven.org/maven2</url>
  </pluginRepository>
 </pluginRepositories>
 <reporting>
  <outputDirectory>C:\MVN\project\target/site</outputDirectory>
 </reporting>
</project>

在上面的 pom.xml 中,你可以看到 Maven 在執(zhí)行目標時需要用到的默認工程源碼目錄結(jié)構(gòu)、輸出目錄、需要的插件、倉庫和報表目錄。

Maven 的 pom.xml 文件也不需要手工編寫。

Maven 提供了大量的原型插件來創(chuàng)建工程,包括工程結(jié)構(gòu)和 pom.xml。

總結(jié)

以上就是本文關于maven中pom.xml詳細介紹的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Maven構(gòu)建生命周期詳細介紹、Maven管理SpringBoot Profile詳解maven學習-初窺門徑等,有什么問題可以隨時留言,歡迎大家留下寶貴的意見,小編會及時修改。感謝朋友們對本站的支持!

相關文章

  • Java日期操作方法工具類實例【包含日期比較大小,相加減,判斷,驗證,獲取年份等】

    Java日期操作方法工具類實例【包含日期比較大小,相加減,判斷,驗證,獲取年份等】

    這篇文章主要介紹了Java日期操作方法工具類,結(jié)合完整實例形式分析了java針對日期的各種常見操作,包括日期比較大小,相加減,判斷,驗證,獲取年份、天數(shù)、星期等,需要的朋友可以參考下
    2017-11-11
  • 配置gateway+nacos動態(tài)路由管理流程

    配置gateway+nacos動態(tài)路由管理流程

    這篇文章主要介紹了配置gateway+nacos動態(tài)路由管理流程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • InterlliJ IDEA2020新建java web項目找不到Static Web的解決

    InterlliJ IDEA2020新建java web項目找不到Static Web的解決

    這篇文章主要介紹了InterlliJ IDEA2020新建java web項目找不到Static Web的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Java中的LinkedHashSet源碼解讀

    Java中的LinkedHashSet源碼解讀

    這篇文章主要介紹了Java中的LinkedHashSet源碼解讀,LinkedHashSet?是?Java?中的一個集合類,它是?HashSet?的子類,并實現(xiàn)了?Set?接口,與?HashSet?不同的是,LinkedHashSet?保留了元素插入的順序,并且具有?HashSet?的快速查找特性,需要的朋友可以參考下
    2023-09-09
  • MyBatis+MySQL 返回插入的主鍵ID的方法

    MyBatis+MySQL 返回插入的主鍵ID的方法

    本篇文章主要介紹了MyBatis+MySQL 返回插入的主鍵ID的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • 如何使用Spring-Test對Spring框架進行單元測試

    如何使用Spring-Test對Spring框架進行單元測試

    這篇文章主要介紹了如何使用Spring-Test對Spring框架進行單元測試,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot實現(xiàn)Read Through模式的操作過程

    SpringBoot實現(xiàn)Read Through模式的操作過程

    Read Through模式通常是指一種緩存策略,其中當應用程序嘗試讀取數(shù)據(jù)時,緩存系統(tǒng)首先被檢查以查看數(shù)據(jù)是否已經(jīng)存在于緩存中,這篇文章主要介紹了SpringBoot實現(xiàn)Read Through模式,需要的朋友可以參考下
    2024-07-07
  • 一文帶你了解SpringBoot的停機方式

    一文帶你了解SpringBoot的停機方式

    停機簡單的說,就是向應用進程發(fā)出停止指令之后,能保證正在執(zhí)行的業(yè)務操作不受影響,直到操作運行完畢之后再停止服務。本文就來和大家聊聊Springboot的停機方式與停機處理
    2023-02-02
  • Java將Date日期類型字段轉(zhuǎn)換成json字符串的方法

    Java將Date日期類型字段轉(zhuǎn)換成json字符串的方法

    這篇文章主要給大家介紹了關于Java將Date日期類型字段轉(zhuǎn)換成json字符串的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Idea中添加Maven項目支持scala的詳細步驟

    Idea中添加Maven項目支持scala的詳細步驟

    這篇文章主要介紹了Idea中添加Maven項目支持scala,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03

最新評論