您好,登錄后才能下訂單哦!
1.什么是pom?
pom(Project Object Model,項目對象模型)定義了項目的基本信息,用于描述項目是如何構建,聲明項目依賴,插件配置,倉庫配置等等。
2.pom配置
Xml代碼 下載
<strong><project xmlns="http://maven.apache.org/POM/4.0.0"
2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5 <modelVersion>4.0.0</modelVersion>
6
7 <!-- 坐標 -->
<parent> ... </parent>
8 <groupId>...</groupId>
9 <artifactId>...</artifactId>
10 <version>...</version>
11 <packaging>...</packaging>
<!-- 倉庫依賴 -->
12 <dependencies>...</dependencies>
14 <dependencyManagement>...</dependencyManagement>
<!-- 項目模塊配置 -->
15 <modules>...</modules>
<!-- 全局配置文件 -->
16 <properties>...</properties>
17
18 <!-- 構建過程的設置 -->
19 <build>...</build>
20 <reporting>...</reporting>
21
22 <!-- 項目信息設置 -->
23 <name>...</name>
24 <description>...</description>
25 <url>...</url>
26 <inceptionYear>...</inceptionYear>
27 <licenses>...</licenses>
28 <organization>...</organization>
29 <developers>...</developers>
30 <contributors>...</contributors>
31
32 <!-- 環境設置 -->
33 <issueManagement>...</issueManagement>
34 <ciManagement>...</ciManagement>
35 <mailingLists>...</mailingLists>
36 <scm>...</scm>
37 <prerequisites>...</prerequisites>
38 <repositories>...</repositories>
39 <pluginRepositories>...</pluginRepositories>
40 <distributionManagement>...</distributionManagement>
41 <profiles>...</profiles>
42 </project></strong>
3.pom標簽詳解下載
3.1 項目坐標標簽:
<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>org.codehaus.mojo</groupId>
<artifactId>my-project</artifactId>
<version>1.0</version>
<packaging>war</packaging>
</project>
groupId : 組織標識,例如:org.codehaus.mojo,在M2_REPO目錄下,將是: org/codehaus/mojo目錄。
artifactId : 項目名稱,例如:my-project,在M2_REPO目錄下,將是:org/codehaus/mojo/my-project目錄。
version : 版本號,例如:1.0,在M2_REPO目錄下,將是:org/codehaus/mojo/my-project/1.0目錄。
packaging : 打包的格式,可以為:pom , jar , maven-plugin , ejb , war , ear , rar , par
modelVersion:定義pom版本號,版本號有一系列的規則
3.2 依賴標簽:
(依賴關系列表(dependency list)是POM的重要部分,也就是我們項目對jar包的管理)
Xml代碼 下載
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
…
</dependencies>
groupId , artifactId , version :引用的坐標
scope : compile(default),provided,runtime,test,system 依賴的范圍
exclusions 需要排除的依賴的jar包
3.3 繼承和聚合(子pom對父pom依賴 和 父項目對模塊的依賴)
<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>org.maven.my</groupId>
<artifactId>${projectName}-parent</artifactId>
<version>2.0</version>
<!-- 定義項目有哪些子模塊 -->
<modules>
<module>my-spring-web<module>
<module>my-spring-service<module>
<module>my-spring-common<module>
<module>my-spring-dao<module>
</modules>
</project>
3.4 項目構建build時標簽:下載
(可以幫我們指定 需要的maven插件,主要標簽:Resources和Plugins
Resources:用于排除或包含某些資源文件
可以用于解決 我們部署測試和線上 服務時,資源文件配置的隔離依賴:-Ponline | -Plocal
Xml代碼 下載
<build>
<!-- 開啟資源文件過濾 -->
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<!-- 指定資源文件路徑 -->
<profiles>
<!--測試配置 -->
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<filters>
<filter>${project.basedir}/src/main/swap/local.properties</filter>
</filters>
</build>
</profile>
<!-- 線上配置 -->
<profile>
<id>online</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<filters>
<filter>${project.basedir}/src/main/swap/online.properties</filter>
</filters>
</build>
</profile>
Plugins:設置構建的插件下載
<build>
…
<!-- 配置maven在運行時 需要依賴的插件,我們平常可以配jetty插件或者assemebly插件等-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.0</version>
<extensions>false</extensions>
<inherited>true</inherited>
<configuration>
<classifier>test</classifier>
</configuration>
<dependencies>…</dependencies>
<executions>…</executions>
</plugin>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。