(轉)POM完整注釋

作者:seyvoue
鏈接:http://www.reibang.com/p/8417a94c4d94
來源:簡書

<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>
 
  <!-- 項目的全球唯一標識符,通常使用全限定的包名區(qū)分該項目和其他項目淫奔。并且構建時生成的路徑也是由此生成棕所, 如com.seyvoue.demo生成的相對路徑為:/com/seyvoue/demo--> 
  <groupId>com.seyvoue.demo</groupId>
  <!-- 構件的標識符,它和 groupId 一起唯一標識一個構件嵌戈。換句話說,你不能有兩個不同的項目擁有同樣的 artifactId 和 groupId;在某個特定的 groupId 下噩凹,artifactId也必須是唯一的阳欲。-->
  <artifactId>demo-maven</artifactId>
  <!-- 項目當前版本舵盈,格式為:主版本.次版本.增量版本-限定版本號-->
  <version>1.0.0-SNAPSHOT</version>
  <!-- 項目產生的構件類型,例如 jar胸完、war书释、pom 等。插件可以創(chuàng)建他們自己的構件類型赊窥,所以前面列的不是全部構件類型-->
  <packaging>jar</packaging>
  <!-- 項目的名稱爆惧,Maven產生的文檔用-->     
  <name>project-demo</name>
  <!-- 項目主頁的URL,Maven產生的文檔用-->
  <url>http://demo.seyvoue.com</url>
  <!-- 項目的詳細描述, Maven 產生的文檔用锨能。當這個元素能夠用HTML格式描述時(例如扯再,CDATA中的文本會被解析器忽略芍耘,就可以包含HTML標簽), 不鼓勵使用純文本描述熄阻。如果你需要修改產生的web站點的索引頁面斋竞,你應該修改你自己的索引頁文件,而不是調整這里的文檔秃殉。-->
  <description>A demo of maven project to study maven.</description>
  


  <parent>    
    <!--被繼承的父項目的構件標識符-->    
    <artifactId/>    
    <!--被繼承的父項目的全球唯一標識符-->    
    <groupId/>    
    <!--被繼承的父項目的版本-->    
    <version/>    
    <!-- 父項目的pom.xml文件的相對路徑坝初。相對路徑允許你選擇一個不同的路徑。默認值是../pom.xml钾军。Maven首先在構建當前項目的地方尋找父項目的pom鳄袍,其次在文件系統(tǒng)的這個位置(relativePath位置),然后在本地倉庫吏恭,最后在遠程倉庫尋找父項目的pom拗小。-->    
    <relativePath/>    
 </parent>


  <!-- 繼承自該項目的所有子項目的默認依賴信息。這部分的依賴信息不會被立即解析,而是當子項目聲明一個依賴(必須描述group ID和 artifact ID信息)樱哼,如果group ID和artifact ID以外的一些信息沒有描述哀九,則通過group ID和artifact ID 匹配到這里的依賴,并使用這里的依賴信息搅幅。-->    
  <dependencyManagement>    
    <dependencies>    
      <!--參見dependencies/dependency元素-->    
      <dependency>    
      ...    
      </dependency>    
    </dependencies>    
 </dependencyManagement>



  <!--該元素描述了項目相關的所有依賴阅束。 這些依賴組成了項目構建過程中的一個個環(huán)節(jié)。它們自動從項目定義的倉庫中下載盏筐。要獲取更多信息围俘,請看項目依賴機制。-->     
  <dependencies>     
    <dependency>    
      <!--依賴的group ID-->    
      <groupId>org.apache.maven</groupId>     
      <!--依賴的artifact ID-->    
      <artifactId>maven-artifact</artifactId>     
      <!--依賴的版本號琢融。 在Maven 2里, 也可以配置成版本號的范圍界牡。-->    
      <version>3.8.1</version>     
      <!-- 依賴類型,默認類型是jar漾抬。它通常表示依賴的文件的擴展名宿亡,但也有例外。一個類型可以被映射成另外一個擴展名或分類器纳令。類型經常和使用的打包方式對應挽荠,   這也有例外。一些類型的例子:jar平绩,war圈匆,ejb-client和test-jar。如果設置extensions為 true捏雌,就可以在 plugin里定義新的類型跃赚。所以前面的類型的例子不完整。-->    
      <type>jar</type>    
      <!-- 依賴的分類器。分類器可以區(qū)分屬于同一個POM纬傲,但不同構建方式的構件满败。分類器名被附加到文件名的版本號后面。例如叹括,如果你想要構建兩個單獨的構件成 JAR算墨,一個使用Java    4編譯器,另一個使用Java 6編譯器汁雷,你就可以使用分類器來生成兩個單獨的JAR構件净嘀。-->    
      <classifier></classifier>    
      <!--依賴范圍。在項目發(fā)布過程中摔竿,幫助決定哪些構件被包括進來面粮。欲知詳情請參考依賴機制。    
        - compile :默認范圍继低,用于編譯      
        - provided:類似于編譯,但支持你期待jdk或者容器提供稍走,類似于classpath      
        - runtime: 在執(zhí)行時需要使用      
        - test:    用于test任務時使用      
        - system: 需要外在提供相應的元素袁翁。通過systemPath來取得      
        - systemPath: 僅用于范圍為system。提供相應的路徑      
        - optional:   當項目自身被依賴時婿脸,標注依賴是否傳遞粱胜。用于連續(xù)依賴時使用-->     
      <scope>test</scope>       
      <!--僅供system范圍使用。注意狐树,不鼓勵使用這個元素焙压,并且在新的版本中該元素可能被覆蓋掉。該元素為依賴規(guī)定了文件系統(tǒng)上的路徑抑钟。需要絕對路徑而不是相對路徑涯曲。推薦使用屬性匹配絕對路徑,例{java.  home}在塔。-->    
      <systemPath></systemPath>     
      <!--當計算傳遞依賴時幻件, 從依賴構件列表里,列出被排除的依賴構件集蛔溃。即告訴maven你只依賴指定的項目绰沥,不依賴項目的依賴。此元素主要用于解決版本沖突問題-->    
      <exclusions>    
        <exclusion>     
          <artifactId>spring-core</artifactId>     
          <groupId>org.springframework</groupId>     
        </exclusion>     
      </exclusions>       
      <!--可選依賴贺待,如果你在項目B中把C依賴聲明為可選徽曲,你就需要在依賴于B的項目(例如項目A)中顯式的引用對C的依賴◆锶可選依賴阻斷依賴的傳遞性秃臣。-->     
      <optional>true</optional>    
    </dependency>
    ...    
  </dependencies>




  <!--模塊(有時稱作子項目) 被構建成項目的一部分。列出的每個模塊元素是指向該模塊的目錄的相對路徑-->
  <modules>  
      <module>account-email</module>  
      <module>account-persist</module> 
      ... 
  </modules>





  <scm>     
      <!--SCM的URL,該URL描述了版本庫和如何連接到版本庫喘垂。欲知詳情甜刻,請看SCMs提供的URL格式和列表绍撞。該連接只讀。-->     
      <connection>     
          scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)      
      </connection>     
      <!--給開發(fā)者使用的得院,類似connection元素傻铣。即該連接不僅僅只讀-->    
      <developerConnection>     
          scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk      
      </developerConnection>    
      <!--當前代碼的標簽,在開發(fā)階段默認為HEAD-->    
      <tag/>           
      <!--指向項目的可瀏覽SCM庫(例如ViewVC或者Fisheye)的URL祥绞。-->     
      <url>http://svn.baidu.com/banseon</url>     
  </scm> 
  

  <!--項目分發(fā)信息非洲,在執(zhí)行mvn deploy后表示要發(fā)布的位置。有了這些信息就可以把網(wǎng)站部署到遠程服務器或者把構件部署到遠程倉庫蜕径。-->     
  <distributionManagement>    
    <!--部署項目產生的構件到遠程倉庫需要的信息-->    
      <repository>    
        <!--是分配給快照一個唯一的版本號(由時間戳和構建流水號)两踏?還是每次都使用相同的版本號?參見repositories/repository元素-->    
        <uniqueVersion/>    
        <id>banseon-maven2</id>     
        <name>banseon maven2</name>     
          <url>file://${basedir}/target/deploy</url>     
          <layout/>    
      </repository>    
      <!--構件的快照部署到哪里兜喻?如果沒有配置該元素梦染,默認部署到repository元素配置的倉庫,參見distributionManagement/repository元素-->     
      <snapshotRepository>    
        <uniqueVersion/>    
        <id>banseon-maven2</id>    
          <name>Banseon-maven2 Snapshot Repository</name>    
          <url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>     
        <layout/>    
      </snapshotRepository>    
      <!--部署項目的網(wǎng)站需要的信息-->     
      <site>    
    <!--部署位置的唯一標識符朴皆,用來匹配站點和settings.xml文件里的配置-->     
        <id>banseon-site</id>     
          <!--部署位置的名稱-->    
          <name>business api website</name>     
          <!--部署位置的URL帕识,按protocol://hostname/path形式-->    
          <url>     
            scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web      
          </url>     
      </site>    
      <!--項目下載頁面的URL。如果沒有該元素遂铡,用戶應該參考主頁肮疗。使用該元素的原因是:幫助定位那些不在倉庫里的構件(由于license限制)。-->    
      <downloadUrl/>    
      <!--如果構件有了新的group ID和artifact ID(構件移到了新的位置)扒接,這里列出構件的重定位信息伪货。-->    
      <relocation>    
        <!--構件新的group ID-->    
        <groupId/>    
        <!--構件新的artifact ID-->    
        <artifactId/>    
        <!--構件新的版本號-->    
        <version/>    
        <!--顯示給用戶的,關于移動的額外信息钾怔,例如原因碱呼。-->    
        <message/>    
      </relocation>    
      <!-- 給出該構件在遠程倉庫的狀態(tài)。不得在本地項目中設置該元素蒂教,因為這是工具自動更新的巍举。有效的值有:none(默認),converted(倉庫管理員從 Maven 1  POM轉換過來)凝垛,partner(直接從伙伴Maven 2倉庫同步過來)懊悯,deployed(從Maven 2實例部 署),verified(被核實時正確的和最終的)梦皮。-->    
      <status/>           
  </distributionManagement>





  <build>
    <!--當項目沒有規(guī)定目標(Maven2 叫做階段)時的默認值-->
    <defaultGoal>install</defaultGoal>
    <!--build目標文件的存放目錄炭分,默認在 ${basedir}/target 目錄-->
    <directory>${basedir}/target</directory>
    <finalName>${artifactId}-${version}</finalName>
    <filters>
      <filter>filters/filter1.properties</filter>
    </filters>


    <!--這個元素描述了項目相關的所有資源路徑列表,例如和項目相關的屬性文件剑肯,這些資源被包含在最終的打包文件里捧毛。-->    
    <resources>    
      <!--這個元素描述了項目相關或測試相關的所有資源路徑-->    
      <resource>    
        <!-- 描述了資源的目標路徑。該路徑相對target/classes目錄(例如${project.build.outputDirectory})。舉個例 子呀忧,如果你想資源在特定的包里(   org.apache.maven.message师痕,你就必須該元素設置為org/apache/maven /messages。然而而账,如果你只是想把資源放到源碼目錄結構里胰坟,就不需要該配置。-->    
        <targetPath/>    
        <!--是否使用參數(shù)值代替參數(shù)名泞辐。參數(shù)值取自properties元素或者文件里配置的屬性笔横,文件在filters元素里列出。-->    
        <filtering/>    
        <!--描述存放資源的目錄咐吼,該路徑相對POM路徑-->    
        <directory/>    
        <!--包含的模式列表吹缔,例如**/*.xml.-->    
        <includes/>    
        <!--排除的模式列表,例如**/*.xml-->    
        <excludes/>    
      </resource>    
    </resources>    
    <!--這個元素描述了單元測試相關的所有資源路徑锯茄,例如和單元測試相關的屬性文件厢塘。-->    
    <testResources>    
      <!--這個元素描述了測試相關的所有資源路徑,參見build/resources/resource元素的說明-->    
      <testResource>    
        <targetPath/>
        <filtering/>
        <directory/>
        <includes/>
        <excludes/>    
      </testResource>    
    </testResources>


    <plugins>
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.3</version>
          <configuration>
              <tagBase>${git.conn}</tagBase>
              <branchBase>${git.conn}</branchBase>
              <username>${git.username}</username>
              <password>${git.password}</password>
          </configuration>
      </plugin>
      ...
    </plugins>

    <!--子項目可以引用的默認插件信息撇吞。該插件配置項直到被引用時才會被解析或綁定到生命周期俗冻。給定插件的任何本地配置都會覆蓋這里的配置-->
    <pluginManagement>
      <plugins>
        ...
      </plugins>
    </pluginManagement>
  </build>
</project>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末睡互,一起剝皮案震驚了整個濱河市屋剑,隨后出現(xiàn)的幾起案子泳挥,更是在濱河造成了極大的恐慌,老刑警劉巖煮岁,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涣易,居然都是意外死亡画机,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門新症,熙熙樓的掌柜王于貴愁眉苦臉地迎上來步氏,“玉大人,你說我怎么就攤上這事徒爹〖孕眩” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵隆嗅,是天一觀的道長界阁。 經常有香客問我,道長胖喳,這世上最難降的妖魔是什么泡躯? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上较剃,老公的妹妹穿的比我還像新娘咕别。我一直安慰自己,他們只是感情好写穴,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布惰拱。 她就那樣靜靜地躺著,像睡著了一般确垫。 火紅的嫁衣襯著肌膚如雪弓颈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天删掀,我揣著相機與錄音翔冀,去河邊找鬼。 笑死披泪,一個胖子當著我的面吹牛纤子,可吹牛的內容都是我干的。 我是一名探鬼主播款票,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼控硼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了艾少?” 一聲冷哼從身側響起卡乾,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缚够,沒想到半個月后幔妨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡谍椅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年误堡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雏吭。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡锁施,死狀恐怖,靈堂內的尸體忽然破棺而出杖们,到底是詐尸還是另有隱情悉抵,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布胀莹,位于F島的核電站基跑,受9級特大地震影響,放射性物質發(fā)生泄漏描焰。R本人自食惡果不足惜媳否,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一栅螟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧篱竭,春花似錦力图、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吕喘,卻和暖如春赘那,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背氯质。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工募舟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人闻察。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓拱礁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親辕漂。 傳聞我的和親對象是個殘疾皇子呢灶,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355