1. 程式人生 > >maven詳解之 pom.xml 解釋

maven詳解之 pom.xml 解釋

表達式 公司 nap 遠程倉庫 坐標 -a art 繼承 插件

<project>:pom.xml的根標簽,一個maven項目用一對<peoject></project>標簽包裹。

<modelVersion>4.0.0</modelVersion>


<parent> <!-- 被繼承的父項目的構件標識符 -->
<groupId>com.qjsoft.laser.controller</groupId><!-- 公司或者組織的唯一標誌,並且配置時生成的路徑也是由此生成 企業網址反寫+項目名 -->
<artifactId>qjsoft-laser-controller</artifactId><!--本項目的唯一ID,一個groupId下面可能多個項目,就是靠artifactId來區分的 項目名-模塊名-->
<version>0.0.1-SNAPSHOT</version> <!-- 本項目目前所處的版本號 版本號+類型 -->
<!--版本號由三個整數表示,每個整數用“.”分隔,表示:大版本號.分支版本號.小版本號
類型:版本類型。主要有:snapshot快照版本(簡化版本)、alpha內測版、beta公測版、release穩定版、GA正式發布版-->
</parent>

<groupId>com.qjsoft.laser.controller</groupId> <!-- 公司或者組織的唯一標誌,並且配置時生成的路徑也是由此生成 企業網址反寫+項目名 -->
<artifactId>qjsoft-laser-controller-apadtation</artifactId> <!--本項目的唯一ID,一個groupId下面可能多個項目,就是靠artifactId來區分的 項目名-模塊名-->
<version>4.0-SNAPSHOT</version> <!-- 本項目目前所處的版本號 -->
<packaging>pom</packaging> <!-- 打包的機制,如pom,jar, maven-plugin, ejb, war, ear, rar, par,默認為jar -->
<name>controller</name> <!--當前項目的名稱-->

<!--項目開發者屬性-->
<properties> <!--屬性值標簽,也叫變量標簽。與Ant中的property一樣,可以通過這個標簽包含一些屬性並指定屬性值。
那麽在pom.xml的其他地方,可以通過EL表達式訪問變量的方法——${屬性名} 來獲取具體的屬性值。
一般這個用來作為整個pom.xml中需要重復使用的內容或者全局變量使用。-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--文件拷貝時的編碼-->
<yqbsoft-laser-service-suppercore.version>1.4.12</yqbsoft-laser-service-suppercore.version>
<yqbsoft-laser-service-domain-client.version>1.0.0-SNAPSHOT</yqbsoft-laser-service-domain-client.version>
</properties>

<!--依賴管理標簽:主要用於制定父pom.xml,其他項目可以繼承這個pom.xml,從而避免重復定義某些depency

父POM使用dependencyManagement能夠統一項目範圍中依賴的版本,當依賴版本在父POM中聲明後,子模塊在使用依賴的時候就無須聲明版本,
也就不會發生多個子模塊使用版本不一致的情況,幫助降低依賴沖突的幾率。如果子模塊不聲明依賴的使用,即使該依賴在父POM中的dependencyManagement中聲明了,
也不會產生任何效果

  1) 只能出現在父pom裏

  2) 統一版本號

  3) 只是依賴聲明,並不直接依賴,需要時在子項目中在聲明要使用依賴的GA信息,V信息可以省略.-->

<depencyManagement>
<depencies>
<depency>
依賴包的坐標...
</depency>
</depencies>
</depencyManagement>

<build>:項目支持標簽,一般用來引入插件
<build>
<plugins>
<plugin>
<!--插件坐標-->
<groupId> </groupId>
<artifactId> </artifactId>
<version> </version>

其他設置...

</plugin>
</plugins>
</build>


<properties>
<!-- 文件拷貝時的編碼 -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- 編譯時的編碼 -->
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>


<plugins>給出構建過程中所用到的插件。


compiler //編譯


也可以通過<extensions>激活構建插件,從而改變構建的過程。

通常,通過<extensions>給出通用插件的一個具體實現,用於構建過程。

maven倉庫


Maven倉庫分為:本地倉庫+遠程倉庫兩大類
遠程倉庫 : http://mvnrepository.com/

遠程倉庫又分為:中央倉庫+私服+其它公共遠程倉庫

maven詳解之 pom.xml 解釋