`

maven的pom介绍及配置(四)

阅读更多

1.什么是pom?

pom(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目是如何构建,声明项目依赖,插件配置,仓库配置等等。

2.pom配置

 

<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>

 

 

 

3.pom标签详解

 

3.1 项目坐标标签:

   

  1. <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/maven-v4_0_0.xsd">  
  5.   <modelVersion>4.0.0</modelVersion>  
  6.   <groupId>org.codehaus.mojo</groupId>  
  7.   <artifactId>my-project</artifactId>  
  8.   <version>1.0</version>  
  9.   <packaging>war</packaging>  
  10. </project>  
  1. groupId : 组织标识,例如:org.codehaus.mojo,在M2_REPO目录下,将是: org/codehaus/mojo目录。
  2. artifactId : 项目名称,例如:my-project,在M2_REPO目录下,将是:org/codehaus/mojo/my-project目录。
  3. version : 版本号,例如:1.0,在M2_REPO目录下,将是:org/codehaus/mojo/my-project/1.0目录。
  4. packaging : 打包的格式,可以为:pom , jar , maven-plugin , ejb , war , ear , rar , par
  5. modelVersion:定义pom版本号,版本号有一系列的规则
  3.2 依赖标签:
(依赖关系列表(dependency list)是POM的重要部分,也就是我们项目对jar包的管理)
Xml代码 
  1. <dependencies>  
  2.    <dependency>  
  3.      <groupId>junit</groupId>  
  4.      <artifactId>junit</artifactId>  
  5.      <version>4.0</version>  
  6.      <scope>test</scope>  
  7.    </dependency>  
  8.    …  
  9.  </dependencies> 
  1. groupId , artifactId , version :引用的坐标
  2. scope : compile(default),provided,runtime,test,system  依赖的范围
  3. exclusions  需要排除的依赖的jar包
3.3 继承和聚合(子pom对父pom依赖 和 父项目对模块的依赖)
  1. <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/maven-v4_0_0.xsd">  
  5.   <modelVersion>4.0.0</modelVersion>  
  6.   <groupId>org.maven.my</groupId>  
  7.   <artifactId>${projectName}-parent</artifactId>  
  8.   <version>2.0</version> 
  9.   <!-- 定义项目有哪些子模块 --> 
  10.   <modules>  
  11.     <module>my-spring-web<module>  
  12.     <module>my-spring-service<module>  
  13.     <module>my-spring-common<module>  
  14.     <module>my-spring-dao<module>  
  15.   </modules>  
  16. </project>  
 3.4 项目构建build时标签:
(可以帮我们指定 需要的maven插件,主要标签:Resources和Plugins
    Resources:用于排除或包含某些资源文件
   可以用于解决 我们部署测试和线上 服务时,资源文件配置的隔离依赖:-Ponline | -Plocal
<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:设置构建的插件
  1. <build>  
  2.    …  
  3.    <!-- 配置maven在运行时 需要依赖的插件,我们平常可以配jetty插件或者assemebly插件等-->
  4.    <plugins>  
  5.      <plugin>  
  6.        <groupId>org.apache.maven.plugins</groupId>  
  7.        <artifactId>maven-jar-plugin</artifactId>  
  8.        <version>2.0</version>  
  9.        <extensions>false</extensions>  
  10.        <inherited>true</inherited>  
  11.        <configuration>  
  12.          <classifier>test</classifier>  
  13.        </configuration>  
  14.        <dependencies>…</dependencies>  
  15.        <executions>…</executions>  
  16.      </plugin>  
 

 

所有文章:

   参考:项目管理和java文章列表

maven系列文章: 

  1).maven的安装及常用命令(一)

  2).maven的生命周期,插件介绍(二)

  3).maven的坐标,仓库介绍及配置(三)

  4).maven的pom介绍及配置(四)

  5).maven的依赖特性,冲突解决(五)

  6).maven的聚合模块和pom继承使用(六)

  7).maven的版本规范(七)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics