您好,登錄后才能下訂單哦!
這篇文章主要講解了“maven工程的pom文件有什么作用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“maven工程的pom文件有什么作用”吧!
POM文件結(jié)構(gòu)
<project> <parent> <!-- 被繼承的父項(xiàng)目的構(gòu)建標(biāo)識符 --> <artifactId></artifactId> <!-- 被繼承的父項(xiàng)目的全球標(biāo)識符 --> <groupId></groupId> <!-- 被繼承的父項(xiàng)目的版本號 --> <version></version> <!-- 父項(xiàng)目的pom.xml文件的相對路徑。相對路徑允許你選擇一個 --> <relativePath></relativePath> </parent> <!-- 聲明項(xiàng)目描述符遵循哪一個POM模型版本。模型本身的版本很少改變 ,雖然如此,但它仍然是必不可少的,這是為了當(dāng)Maven引入了新的特性或者其他模型變更的時(shí)候,確保穩(wěn)定性。 --> <modelVersion>4.0.0</modelVersion> <!-- 項(xiàng)目的全球唯一標(biāo)識符,通常使用全限定的包名區(qū)分該項(xiàng)目和其他項(xiàng)目。并且構(gòu)建時(shí)生成的路徑也是由此生成, 如com.mycompany.app生成的相對路徑為:/com/mycompany/app --> <groupId>com.demo</groupId> <!-- 構(gòu)件的標(biāo)識符,它和group ID一起唯一標(biāo)識一個構(gòu)件。換句話說,你不能有兩個不同的項(xiàng)目擁有同樣的artifact ID和groupID;在某個特定的group ID下,artifact ID也必須是唯一的。構(gòu)件是項(xiàng)目產(chǎn)生的或使用的一個東西,Maven為項(xiàng)目產(chǎn)生的構(gòu)件包括:JARs,源碼,二進(jìn)制發(fā)布和WARs等。 --> <artifactId>bpmnProject</artifactId> <!-- 項(xiàng)目當(dāng)前版本,格式為:主版本.次版本.增量版本-限定版本號 --> <version>1.0.0-SNAPSHOT</version> <!-- 項(xiàng)目產(chǎn)生的構(gòu)件類型,例如jar、war、ear、pom。插件可以創(chuàng)建他們自己的構(gòu)件類型,所以前面列的不是全部構(gòu)件類型 --> <packaging>war</packaging> <!-- 項(xiàng)目的名稱, Maven產(chǎn)生的文檔用 --> <name>banseon-maven</name> <!-- 項(xiàng)目主頁的URL, Maven產(chǎn)生的文檔用 --> <url>http://www.example.com</url> <!-- 項(xiàng)目的詳細(xì)描述, Maven 產(chǎn)生的文檔用。 當(dāng)這個元素能夠用HTML格式描述時(shí)(例如,CDATA中的文本會被解析器忽略,就可以包含HTML標(biāo)簽), 不鼓勵使用純文本描述。如果你需要修改產(chǎn)生的web站點(diǎn)的索引頁面,你應(yīng)該修改你自己的索引頁文件,而不是調(diào)整這里的文檔。 --> <description>A maven project to study maven</description> <!-- 描述了這個項(xiàng)目構(gòu)建環(huán)境中的前提條件 --> <prerequisites> <!-- 構(gòu)建該項(xiàng)目或使用該插件所需要的Maven的最低版本 --> <maven></maven> </prerequisites> <!-- 項(xiàng)目的問題管理系統(tǒng)(Bugzilla,Jira,Scarab,或任何你喜歡的問題管理系統(tǒng))的名稱或URL,本例為Jira --> <issueManagement> <!-- 問題管理系統(tǒng)(例如Jira)的名字 --> <system>jira</system> <!-- 該項(xiàng)目使用的問題管理系統(tǒng)的URL --> <url>http://jira/baidu.com/banseon</url> </issueManagement> <!-- 項(xiàng)目持續(xù)集成信息 --> <ciManagement> <!-- 持續(xù)集成系統(tǒng)的名字,例如continuum --> <system></system> <!-- 該項(xiàng)目使用的持續(xù)集成系統(tǒng)的URL(如果持續(xù)集成系統(tǒng)有web接口的話) --> <url></url> <!-- 構(gòu)建完成時(shí),需要通知的開發(fā)者/用戶的配置項(xiàng)。包括被通知者信息和通知條件(錯誤,失敗,成功,警告) --> <notifiers> <!-- 配置一種方式,當(dāng)構(gòu)建中斷時(shí),以該方式通知用戶/開發(fā)者 --> <notifier> <!-- 傳送通知的途徑 --> <type></type> <!-- 發(fā)生錯誤時(shí)是否通知 --> <sendOnError></sendOnError> <!-- 構(gòu)建失敗時(shí)是否通知 --> <sendOnFailure></sendOnFailure> <!-- 構(gòu)建成功時(shí)是否通知 --> <sendOnSuccess></sendOnSuccess> <!-- 發(fā)生警告時(shí)是否通知 --> <sendOnWarning></sendOnWarning> <!-- 不贊成使用,通知發(fā)送到哪兒 --> <address></address> <!-- 擴(kuò)展配置項(xiàng) --> <configuration></configuration> </notifier> </notifiers> </ciManagement> <!-- 項(xiàng)目創(chuàng)建年份,4位數(shù)字。當(dāng)產(chǎn)生版權(quán)信息時(shí)需要使用這個值 --> <inceptionYear></inceptionYear> <mailingLists> <mailingList> <name>Demo</name> <post>banseon@126.com</post> <subscribe>banseon@126.com</subscribe> <unsubscribe>banseon@126.com</unsubscribe> <archive>http://hi.baidu.com/banseon/demo/dev</archive> </mailingList> </mailingLists> <!-- 項(xiàng)目開發(fā)者列表 --> <developers> <!-- 某個項(xiàng)目開發(fā)者的信息 --> <developer> <!-- SCM里項(xiàng)目開發(fā)者的唯一標(biāo)識 --> <id>HELLO WORLD</id> <!-- 項(xiàng)目開發(fā)者的全名 --> <name>banseon</name> <!-- 項(xiàng)目開發(fā)者的email --> <email>banseon@126.com</email> <!-- 項(xiàng)目開發(fā)者的主頁url --> <url></url> <!-- 項(xiàng)目開發(fā)者在項(xiàng)目中扮演的角色,角色元素描述了各種角色 --> <roles> <role>Project Manager</role> <role>Architect</role> </roles> <!-- 項(xiàng)目開發(fā)者所屬的組織 --> <organization>http://hi.baidu.com/banseon</organization> <!-- 項(xiàng)目開發(fā)者屬性,如即時(shí)消息如何處理等 --> <properties> <dept> No </dept> </properties> <!-- 項(xiàng)目開發(fā)者所在時(shí)區(qū), -11到12范圍內(nèi)的整數(shù)。 --> <timezone>-5</timezone> </developer> </developers> <!-- 項(xiàng)目的其他貢獻(xiàn)者列表 --> <contributors> <!-- 項(xiàng)目的其他貢獻(xiàn)者。參見developers/developer元素 --> <contributor> <name></name> <email></email> <url></url> <organization></organization> <organizationUrl></organizationUrl> <roles></roles> <timezone></timezone> <properties></properties> </contributor> </contributors> <!-- 該元素描述了項(xiàng)目所有License列表。 應(yīng)該只列出該項(xiàng)目的license列表,不要列出依賴項(xiàng)目的 license列表。如果列出多個license,用戶可以選擇它們中的一個而不是接受所有l(wèi)icense。 --> <licenses> <!-- 描述了項(xiàng)目的license,用于生成項(xiàng)目的web站點(diǎn)的license頁面,其他一些報(bào)表和validation也會用到該元素。 --> <license> <!-- license用于法律上的名稱 --> <name> Apache 2 </name> <!-- 官方的license正文頁面的URL --> <url> http://www.baidu.com/banseon/LICENSE-2.0.txt </url> <!-- 項(xiàng)目分發(fā)的主要方式: repo,可以從Maven庫下載 manual, 用戶必須手動下載和安裝依賴 --> <distribution> repo </distribution> <!-- 關(guān)于license的補(bǔ)充信息 --> <comments> A business-friendly OSS license </comments> </license> </licenses> <!-- SCM(Source Control Management)標(biāo)簽允許你配置你的代碼庫,供Maven web站點(diǎn)和其它插件使用。 --> <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> <!-- 當(dāng)前代碼的標(biāo)簽,在開發(fā)階段默認(rèn)為HEAD --> <tag /> <!-- 指向項(xiàng)目的可瀏覽SCM庫(例如ViewVC或者Fisheye)的URL。 --> <url> http://svn.baidu.com/banseon </url> </scm> <!-- 描述項(xiàng)目所屬組織的各種屬性。Maven產(chǎn)生的文檔用 --> <organization> <!-- 組織的全名 --> <name> demo </name> <!-- 組織主頁的URL --> <url> http://www.baidu.com/banseon </url> </organization> <!-- 構(gòu)建項(xiàng)目需要的信息 --> <build> <!-- 該元素設(shè)置了項(xiàng)目源碼目錄,當(dāng)構(gòu)建項(xiàng)目的時(shí)候,構(gòu)建系統(tǒng)會編譯目錄里的源碼。該路徑是相對于pom.mxl的相對路徑。 --> <sourceDirectory></sourceDirectory> <!-- 該元素設(shè)置了項(xiàng)目腳本源碼目錄,該目錄和源碼目錄不同,絕大多數(shù)情況下,該目錄下的內(nèi)容會被拷貝到輸出目錄(因?yàn)槟_本是被解釋的,而不是被編譯的) --> <scriptSourceDirectory></scriptSourceDirectory> <!-- 該元素設(shè)置了項(xiàng)目單元測試使用的源碼目錄,當(dāng)測試項(xiàng)目的時(shí)候,構(gòu)建系統(tǒng)會編譯目錄里的源碼,該路徑是相對于pom.xml的相對路徑 --> <testSourceDirectory></testSourceDirectory> <!-- 被編譯過的應(yīng)用程序class文件存放的目錄 --> <outputDirectory></outputDirectory> <!-- 被編譯過的測試class文件存放的目錄 --> <testOutputDirectory></testOutputDirectory> <!-- 使用來自該項(xiàng)目的一系列構(gòu)建擴(kuò)展 --> <extensions> <!-- 描述使用到的構(gòu)建擴(kuò)展 --> <extension> <!-- 構(gòu)建擴(kuò)展的groupId --> <groupId></groupId> <!-- 構(gòu)建擴(kuò)展的artifactId --> <artifactId></artifactId> <!-- 構(gòu)件擴(kuò)展的版本 --> <version></version> </extension> </extensions> <!-- 使用的插件列表 --> <plugins> <!-- plugin元素包含描述插件所需要的信息 --> <plugin> <!-- 插件在倉庫里的groupId --> <groupId></groupId> <!-- 插件在倉庫里的artifactId --> <artifactId></artifactId> <!-- 被使用的插件的版本(或者版本范圍) --> <version></version> <!-- 是否從該插件下載Maven擴(kuò)展(例如打包或類型處理器),由于性能原因,只有在真需要下載時(shí),該元素才被設(shè)置成enabled --> <extensions></extensions> <!-- 在構(gòu)建生命周期中執(zhí)行一組目標(biāo)的配置,每個目標(biāo)可能有不同的配置 --> <executions> <!-- execution元素包含了插件執(zhí)行需要的信息 --> <execution> <!-- 執(zhí)行目標(biāo)的標(biāo)識符,用于標(biāo)識構(gòu)建過程的目標(biāo),或者匹配繼承過程中需要合并的目標(biāo) --> <id></id> <!-- 綁定了目標(biāo)的構(gòu)建生命周期階段,如果省略,目標(biāo)會被綁定到源數(shù)據(jù)的默認(rèn)階段 --> <phase></phase> <!-- 配置的執(zhí)行目標(biāo) --> <goals></goals> <!-- 配置是否被傳播到子pom --> <inherited></inherited> <!-- 作為DOM對象的配置 --> <configuration></configuration> </execution> </executions> <!-- 項(xiàng)目中引入插件所需要的配置 --> <dependencies> <!-- 參見dependencied/dependency元素 --> <dependency> </dependency> </dependencies> <!-- 任何配置是否被傳播到子pom --> <inherited></inherited> <!-- 作為pom對象的配置 --> <configuration></configuration> </plugin> </plugins> </build> </project>
感謝各位的閱讀,以上就是“maven工程的pom文件有什么作用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對maven工程的pom文件有什么作用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。