java中我所理解的pom文件


Project Object Model,項目對象模型。通過xml可擴展標記語言(EXtensible Markup Language)格式保存的pom.xml文件。作用類似ant的build.xml文件,功能更強大。該文件用於管理:源代碼、配置文件、開發者的信息和角色、問題追蹤系統、組織信息、項目授權、項目的url、項目的依賴關系等等。
一個完整的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 聲明項目描述符遵循哪一個POM模型版本。模型本身的版本很少改變,雖然如此,但它仍然是必不可少的,
這是為了當Maven引入了新的特性或者其他模型變更的時候,確保穩定性。
groupId 公司或者組織的唯一標志,並且配置時生成的路徑也是由此生成,
如com.winner.trade,maven會將該項目打成的jar包放本地路徑:/com/winner/trade
artifactId 本項目的唯一ID,一個groupId下面可能多個項目,就是靠artifactId來區分的
version 本項目目前所處的版本號
packaging 打包類型,可取值:pom , jar , maven-plugin , ejb , war , ear , rar , par等等
name 項目的名稱, Maven產生的文檔用,可省略
url 項目主頁的URL, Maven產生的文檔用 ,可省略

  依賴:

 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.0</version>
      <scope>test</scope>
      <optional>true</optional>
      <exclusions>
      	<exclusion>  
          <groupId>xxx</groupId>
          <artifactId>xxx</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    …
  </dependencies>

  

排除依賴

當一個項目A依賴項目B,而項目B同時依賴項目C,如果項目A中因為各種原因不想引用項目C,在配置項目B的依賴時,可以排除對C的依賴。

<project>
...
<dependencies>
<dependency>
<groupId>sample.ProjectB</groupId>
<artifactId>Project-B</artifactId>
<version>1.0</version>
<scope>compile</scope>
<exclusions>
<exclusion> <!-- declare the exclusion here -->
<groupId>sample.ProjectC</groupId>
<artifactId>Project-C</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>

  

我們想要一次構建兩個項目,而不是到兩個模塊的目錄下分別執行mvn命令 – Maven的聚合就是為該需求服務的。

為了能夠使用一條命令就能構建account-email和account-persist兩個模塊,需要創建一個額外的名為account-aggregator的模塊,然后通過該模塊構建整個項目的所有模塊。

<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.maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.park.mvnDemo.account</groupId>
    <artifactId>account-aggregator</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Account Aggregator</name>
    <modules>
        <module>account-email</module>
        <module>account-persist<module>
    </modules>
</project>

  

聚合關系:用於將多個maven項目聚合為一個大的項目,在上面的xml文件中,packaging的方式為pom。對於聚合模塊來說, 其打包方式必須為pom,否則無法構建!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM