2011年4月7日 星期四

[Configuration] pom.xml

* Project Object Model (POM)
  • The fundamental unit of work in Maven.
  • An XML file that contains information about the project and configuration details used by Maven to build the project.
  • Contains default values for most projects, ex: the build directory, which is target; the source directory, which is src/main/java; the test source directory, which is src/main/test; and so on.

* 在 Maven 中,有三個內建的建構生命週期:
  • Default: 處理專案部署。
  • Clean: 處理專案資源清除。
  • Site: 處理專案文件。

* 使用 mvn 指令呼叫執行某個階段,都是呼叫某個 plugin 來執行,像是編譯時會使用 mvn compile,這會呼叫 Maven 的 maven-compiler-plugin,這個 plugin 在 Super POM 中會有預設值。

* plugin
  • maven-resources-plugin: 處理專案資源的複製。
  • maven-compiler-plugin: 負責專案的編譯。
  • maven-surefire-plugin: 負責專案的單元測試。
  • maven-jar-plugin: 負責專案的包裝。
  • maven-clean-plugin
    • Will delete the target directory by default. You may configure it to delete additional directories and files.
    • The directory in the fileset is a relative path inside a project,


* 可有以下關係
  • 繼承
  •   
          
           目前使用的 POM 版本
           組織或項目的唯一標誌,會成為預設的套件名稱  
           項目的通用名稱,這將成為你存放製品的資料夾名稱,通常就是專案名稱  
           產品版本  
           打包出來的檔案類別, ex: war, jar...  
      
    
  • 依賴
  •   
          
          組織或項目的唯一標誌  
          項目的通用名稱  
          版本  
          檔案類型 (war, jar...)  
          用於限制相應的依賴範圍,ex: compile, runtime...  
          用於連續依賴時  
          
        ...  
        
    
  • 合成

* Build
  
   
      打包後的檔案名稱
        
      打包檔案目錄  
        
        
            
        
      

        
            
              資源所在位置  
            
          
    


* Reference
- Introduction to the POM
- 我的Maven2之旅:五.pom.xml基本元素介绍
- maven 配置篇 之pom.xml(一) **
- JUnit Gossip: 使用 Maven
- JUnit Gossip: POM 設定檔
- JUnit Gossip: 建構生命週期
- Maven Clean plugin - Delete Additional Files Not Exposed to Maven

沒有留言:

張貼留言