Maven
Maven 意思是知識(shí)的積累者,最初是為了簡(jiǎn)化 Jakarta Turbine 項(xiàng)目中的構(gòu)建過(guò)程。有幾個(gè)項(xiàng)目,每個(gè)項(xiàng)目都有自己的 Ant 構(gòu)建文件,它們都略有不同。JAR 被檢入 CVS。我們想要一種標(biāo)準(zhǔn)的方式來(lái)構(gòu)建項(xiàng)目,清楚地定義項(xiàng)目的組成,發(fā)布項(xiàng)目信息的簡(jiǎn)單方法,以及在多個(gè)項(xiàng)目之間共享 JAR 的方法。
結(jié)果是現(xiàn)在可以用于構(gòu)建和管理任何基于 Java 的項(xiàng)目的工具。我們希望我們已經(jīng)創(chuàng)建了一些東西,可以讓 Java 開發(fā)人員的日常工作更輕松,并且通常有助于理解任何基于 Java 的項(xiàng)目。
Maven 的主要目標(biāo)是讓開發(fā)人員能夠在最短的時(shí)間內(nèi)了解開發(fā)工作的完整狀態(tài)。為了實(shí)現(xiàn)這一目標(biāo),Maven 處理了幾個(gè)關(guān)注領(lǐng)域:
- 簡(jiǎn)化構(gòu)建過(guò)程
- 提供統(tǒng)一的構(gòu)建系統(tǒng)
- 提供優(yōu)質(zhì)的項(xiàng)目信息
- 鼓勵(lì)更好的發(fā)展實(shí)踐
pom
pom作為項(xiàng)目對(duì)象模型。通過(guò)xml表示maven項(xiàng)目,使用pom.xml來(lái)實(shí)現(xiàn)。主要描述了項(xiàng)目:包括配置文件;開發(fā)者需要遵循的規(guī)則,缺陷管理系統(tǒng),組織和licenses,項(xiàng)目的url,項(xiàng)目的依賴性,以及其他所有的項(xiàng)目相關(guān)因素。
?POM包括了所有的項(xiàng)目信息:
groupId:項(xiàng)目或者組織的唯一標(biāo)志,并且配置時(shí)生成路徑也是由此生成,如org.myproject.mojo生成的相對(duì)路徑為:/org/myproject/mojo
artifactId:項(xiàng)目的通用名稱
version:項(xiàng)目的版本
packaging:打包機(jī)制,如pom,jar,maven-plugin,ejb,war,ear,rar,par
name:用戶描述項(xiàng)目的名稱,無(wú)關(guān)緊要的東西,可選
url:應(yīng)該是只是寫明開發(fā)團(tuán)隊(duì)的網(wǎng)站,無(wú)關(guān)緊要,可選
classifer:分類
其中g(shù)roupId,artifactId,version,packaging這四項(xiàng)組成了項(xiàng)目的唯一坐標(biāo)。一般情況下,前面三項(xiàng)就可以組成項(xiàng)目的唯一坐標(biāo)了。
POM關(guān)系:主要為依賴,繼承,合成
<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>
<!-- 子模塊對(duì)父模塊的繼承,繼承父模塊的所有依賴 -->
<parent>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</parent>
<!-- 指定多個(gè)模塊一起進(jìn)行編譯 -->
<modules>
<module></module>
</modules>
<!--groupId 反寫的公司網(wǎng)站+項(xiàng)目名稱 -->
<groupId>com.demo.ssm</groupId>
<!--artifactId 項(xiàng)目名稱+模塊名稱 -->
<artifactId>demo-ssm</artifactId>
<!--第一個(gè)0表示大版本號(hào)
第二個(gè)0表示分支版本號(hào)
第三個(gè)0表示小版本號(hào) 0.0.1
snapshot快照 alpha內(nèi)部測(cè)試 beta公測(cè)
Release穩(wěn)定版本 GA正式發(fā)布
-->
<version>0.0.1-SNAPSHOT</version>
<!-- 默認(rèn)是jar 可以是war jar pom -->
<packaging>jar</packaging>
<!--項(xiàng)目描述名稱-->
<name>demo-ssm</name>
<!--項(xiàng)目地址-->
<url>www.gseem.com</url>
<!--項(xiàng)目描述-->
<description>這是項(xiàng)目描述</description>
<!--開發(fā)者列表-->
<developers>feiyue</developers>
<!--項(xiàng)目許可證-->
<licenses></licenses>
<!--項(xiàng)目組織信息-->
<organization></organization>
<!--項(xiàng)目屬性-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--項(xiàng)目依賴列表-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<type></type>
<!-- 作用范圍 -->
<scope>test</scope>
<!-- 設(shè)置依賴是否可選-->
<optional></optional>
<!-- 排除依賴傳遞列表 -->
<exclusions>
<exclusion></exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.demo.maven</groupId>
<artifactId>demo.maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<!-- 依賴的管理 -->
<dependencyManagement>
<dependencies>
<dependency></dependency>
</dependencies>
</dependencyManagement>
<build>
<!-- 插件列表 -->
<plugins>
<plugin>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</plugin>
</plugins>
</build>
</project>
<project>
? <modelVersion>4.0.0</modelVersion>
<!--maven2.0必須是這樣寫,現(xiàn)在是maven2唯一支持的版本-->
? <!-- 基礎(chǔ)設(shè)置 -->
? <groupId>...</groupId>
? <artifactId>...</artifactId>
? <version>...</version>
? <packaging>...</packaging>
??<name>...</name>
??<url>...</url>
? <dependencies>...</dependencies>
? <parent>...</parent>
? <dependencyManagement>...</dependencyManagement>
? <modules>...</modules>
? <properties>...</properties>
? <!--構(gòu)建設(shè)置 -->
? <build>...</build>
? <reporting>...</reporting>
? <!-- 更多項(xiàng)目信息 -->
? <name>...</name>
? <description>...</description>
? <url>...</url>
? <inceptionYear>...</inceptionYear>
? <licenses>...</licenses>
? <organization>...</organization>
? <developers>...</developers>
? <contributors>...</contributors>
? <!-- 環(huán)境設(shè)置-->
? <issueManagement>...</issueManagement>
? <ciManagement>...</ciManagement>
? <mailingLists>...</mailingLists>?
? <scm>...</scm>
? <prerequisites>...</prerequisites>
? <repositories>...</repositories>
? <pluginRepositories>...</pluginRepositories>
? <distributionManagement>...</distributionManagement>
? <profiles>...</profiles>
</project>
通過(guò)qcadoo MES項(xiàng)目學(xué)習(xí)
qcadoo MES - Friendly Manufacturing Execution System
參見:
Maven – 簡(jiǎn)介
maven核心:pom.xml文件詳解-阿里云開發(fā)者社區(qū)
https://github.com/qcadoo/mes/releases/tag/2.4.1
https://mvnrepository.com/
Maven項(xiàng)目的構(gòu)建與管理-研發(fā)管理
Maven – POM Reference文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-837574.html
Maven POM | POM Maven - By Microsoft Award MVP - maven tutorial - Learn in 30sec | wikitechy文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-837574.html
到了這里,關(guān)于簡(jiǎn)介maven核心:pom項(xiàng)目對(duì)象模型的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!