1. 程式人生 > >maven實戰——pom檔案解析

maven實戰——pom檔案解析

前言

pom.xml檔案是maven專案的核心檔案,通過對怕pom檔案的解析,何以獲取專案的一些基本資訊以及所依賴的jar包等資訊。

pom檔案專案資訊的設定

一個簡單專案的pom檔案內容

<?xml version="1.0" encoding="UTF-8"?>                                 ----指定版本和編碼
<project xmlns="..."  
               xmlns:xsi="..."
               xsi:schemaLocation="...">
         <modelVersion>4.0.0<modelVersion>                             ----指定當前pom的版本,對於maven2和maven3來說他只能是4.0.0
         <groupId>com.csdn.mvnbook</groupId>                           ----groupId指定專案屬於哪個組,往往與公司或組織存在關聯
         <artifactId>hello-world</artifactId>                          ----artifactId指定當前maven專案在組中的唯一Id
         <version>1.0-SNAPSHOT</version>                               ----指定hello world的版本
         <name>Maven Hello World Project</name>                        ----指定專案有一個友好的專案名稱,不是必須的
</project>

pom檔案中依賴的新增

<pre name="code" class="html"><project>
    <dependencies>
        <dependency>   
            <groupId>org.sonatype.nexus</groupId>              ----當前專案隸屬的實際專案,maven專案與實際專案並不是一一對應的方式
            <artifactId>nexus-indexer</artifactId>             ----該元素定義實際專案中的一個模組,使用專案名作為字首
            <version>2.0.0</version>                           ----定義該專案所處版本
            <packaging>jar</packaging>                         ----指定maven專案的打包方式
        </dependency>
    </dependencies>
</project>

pom檔案中新增的依賴其實也是maven專案形式的,通過groupId,artifactId,version等元素來定位jar包的位置。

dependency子元素的解釋

<dependency>
    <groupId>...</groupId>
    <artifactId>...</artifactId>
    <version>...</version>
    <type>...</type>
    <scope>...</scope>
    <optional>...</optional>
    <exclusions>
        <exclusion>
            ...
        </exclusion>
    </exclusions>
</dependency>

groupId,artifactId,version是依賴的基本座標;type對應專案座標定義的packaging,預設為jar;scope:以來的範圍;optional依賴是否可選;exclusion依賴是否可選。

scope依賴的範圍

maven在編譯專案的時候也需要自己的一套classpath,依賴範圍就是用來控制依賴於這三種的classpath(編譯classpath,測試classpath與執行classpath),maven有以下幾種依賴的範圍:

(1)compile:編譯依賴範圍,如果沒有指定,就會預設使用這個範圍。使用次依賴範圍對編譯,測試與執行都有效。

(2)test:編譯依賴範圍,使用此範圍的依賴只會在測試classpath有效,典型的是Junit依賴。

(3)provided:已提供依賴範圍,在編譯與測試時有效,在執行時無效。例如servlet-api在編譯和測試時需要改依賴,在執行時容器會提供次依賴。

(4)runtime:執行時依賴,對於測試與執行時有效,編譯時無效,例如資料庫連線驅動依賴,在執行時才有有效。

(5)system:系統依賴範圍。使用此依賴範圍需要通過systemPath元素顯示的指定依賴所在的路徑,不通過maven倉庫解析,與本機系統有關。

如:

<dependency>
    <groupId>javax.sql</groupId>
    <artifactId>jdbc-stdext</artifactId>
    <version>2.0.0</version>
    <scope>system</version>
    <systemPath>${java.home}/lib/rt.jar</systemPath>
</dependency>


相關推薦

maven實戰——pom檔案解析

前言 pom.xml檔案是maven專案的核心檔案,通過對怕pom檔案的解析,何以獲取專案的一些基本資訊以及所依賴的jar包等資訊。 pom檔案專案資訊的設定 一個簡單專案的pom檔案內容 <?xml version="1.0" encoding="UTF-8"?&

Mavenpom檔案詳細解析

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ma

Maven工程的pom檔案解析

什麼是pom?     pom作為專案物件模型。通過xml表示maven專案,使用pom.xml來實現。主要描述了專案:包括配置檔案;開發者需要遵循的規則,缺陷管理系統,組織和licenses,專案的url,專案的依賴性,以及其他所有的專案相關因素。 快速察看: &

mavenpom檔案超詳細解析

<!--可以免費轉載,轉載時請註明出處 http://pengqb.javaeye.com 。--><project xmlns="http://maven.apache.org/POM/4.0.0 " xmlns:xsi="http://www.

解決idea中mavenpom檔案不會自動下載jar包問題

表現:無法下載pom配置檔案中的依賴包,或只能下載少數包,各項配置都正確的情況 理由未知; 百度了很長一段時間,網上給出比較精準的解決之一是 setting》》maven》》去掉work offline 的勾。(這裡肯定是去掉勾的) 在剛開始百度時,work offine 是出於未被勾選的狀態, 然後在網

Mavenpom.xml解析

pom.xml常用元素 modelVersion 指定了當前pom版本 groupId 反寫的公司網址+專案名 artifactId 專案名+模組名 version 版本號 第一個0表示大版本號;第二個0表示分支版本號;第三個0表示小版本號;如:0.0.1SNAPSHOT快照

maven工程pom檔案依賴架包

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS

連線私服倉庫mavenpom檔案報錯:Project build error: Non-resolvable parent POM

配置了私服maven倉庫,在內網160伺服器上,修改了maven配置檔案。下載了一個專案,pom檔案報錯 問題如圖:         將<version>1.5.13.RELEASE</version>改成<version

Maven配置pom檔案詳解

maven核心,pom.xml詳解(轉) 什麼是pom? pom作為專案物件模型。通過xml表示maven專案,使用pom.xml來實現。主要描述了專案:包括配置檔案;開發者需要遵循的規則,缺陷管理系統,組織和licenses,專案的url,專案的依賴性,以及其他所有的專案相關因素。

Maven專案pom檔案詳解

1.Maven私服 依賴和外掛都屬於構件。 二、依賴、依賴的構件庫、外掛庫、構件的釋出包 1.依賴 2.對於依賴的構件庫,通過<repositories>設定 id,庫的ID name,庫的名稱 url,庫的URL layout

maven】【異常】maven專案POM檔案報錯

搭建springboot專案時,POM老是提示錯誤,雖然不影響,但是看到錯誤一直掛到那,感覺不舒服。 org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProj

Mavenpom檔案詳解

什麼是pom?     pom作為專案物件模型。通過xml表示maven專案,使用pom.xml來實現。主要描述了專案:包括配置檔案;開發者需要遵循的規則,缺陷管理系統,組織和licenses,專案的url,專案的依賴性,以及其他所有的專案相關因素。 快速察看:  

springboot-02(springboot的pom檔案解析、springboot場景啟動器)

springboot的pom檔案: 附上springboot的完成pom檔案 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.

java開發工具IntelliJ或eclipse中maven專案pom檔案錯誤failed to read artifact descriptor for xx.jar問題解決辦法

下載安裝好開發軟體之後,IntelliJ會自動對maven外掛進行配置,file-setting 輸入maven可檢視到配置資訊: pom檔案的編寫過程會出現project錯誤, 第一種想法:在第一張圖中home directory 和 setting file 第二種方法:

eclipse匯入maven專案pom檔案報Missing artifact 。。。錯誤的解決辦法

今天 在eclipse裡面匯入一個以前執行無誤的maven專案居然發現pom 檔案報錯 提示Missing artifact 。。。。 的錯誤,很是苦惱,後來在百度上搜了各種方法 終於解決了問題 原因是 pom檔案有時候會犯蠢 你必須強制告訴他本地倉庫在哪裡

IDEA中,Maven專案POM檔案中的依賴未報錯(出現紅色波浪線),但Maven Projects中的模組的Dependencies中的依賴卻報錯

問題描述:   IDEA中,Maven專案POM檔案中的依賴未報錯(出現紅色波浪線),但Maven Projects中模組的Dependencies依賴卻報錯。 問題出現的場景:   將本地Maven倉庫的地址從C盤更換到其他盤,新倉庫中jar包存在。 問題分析:   1、

eclipse匯入maven專案pom檔案報錯

Multiple annotations found at this line: - Missing artifact opensymphony:propertyset:jar:1.4.0- Missing artifact opensymphony:oscore:jar

MavenPom檔案打包配置build

方法一 <build> <finalName>###架包名###</finalName> <sourceDirectory>

maven工程pom檔案標籤詳解

maven是一個軟體工程(Software Project)管理工具。 對於maven來說,一個軟體工程的唯一標識(也叫maven座標)是由groupId(開發者)、artifactId(開發的產品)、version(產品版本) 共同決定的。每個maven管理的工程都有一個

mavenpom檔案報錯: must be "pom" but is "jar"

今天建立一個maven工程,建立完成時沒有考慮要建立子maven專案。 在編碼過程中發現需要建立子模組,於是在maven工程下建立新的子maven專案,子專案建立完成後設定maven,其中發現子專案pom.xml檔案報錯,錯誤如下: Some problems were