美文网首页
【Java】Maven的pom.xml

【Java】Maven的pom.xml

作者: 嗖嗖编程 | 来源:发表于2018-10-07 08:35 被阅读0次

    Java项目常用maven管理,了解一下pom.xml

    一.什么是pom

    pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。

    二.内容注解

    <!-- 当前POM模型的版本 -->
    <modelVersion>4.0.0</modelVersion>
    
    <!-- 父项目坐标 -->
    <parent>
      <groupId>项目组织唯一的标识符(com.xxx)</groupId>
      <artifactId>项目的唯一的标识符(项目名称)</artifactId>
      <version>版本号</version>
      <!--父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。-->  
       <relativePath></relativePath>  
    </parent>
    
    
    <!-- 项目坐标 -->
    <groupId>项目组织唯一的标识符(com.xxx)</groupId>
    <artifactId>项目的唯一的标识符((项目名称))</artifactId>
    <packaging>打包类型</packaging>
    <version>版本号</version>
    
    <!-- 项目信息 -->
    <name>名称</name> 
    <description>描述</description>
    <url>网址</url>
    <inceptionYear>工程的初始时间</inceptionYear>
    
    <!-- 属性 -->
    <properties>
      <!-- 定义一些常量 -->
      <jdk.version>1.7</jdk.version>
      <servlet.api.version>3.0.1</servlet.api.version>
      <jsp.api.version>2.1</jsp.api.version>
      <junit.version>4.11</junit.version>
      <mysql.version>5.1.21</mysql.version>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <!-- 依赖管理,父项目中用来统一管理依赖的,子项目中直接使用dependencies -->
    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet.api</artifactId>
          <version>3.0.1</version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    
    <!-- 依赖项 -->
    <dependencies>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet.api</artifactId>
        <version>3.0.1</version>
        <scope>provided</scope>
      </dependency>
    </dependencies>
    
    <!--构建项目需要的信息--> 
    <build>
      <!--该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。-->  
      <sourceDirectory></sourceDirectory>  
      <!--该元素设置了项目脚本源码目录,该目录和源码目录不同:绝大多数情况下,该目录下的内容 会被拷贝到输出目录(因为脚本是被解释的,而不是被编译的)。--> 
      <scriptSourceDirectory></scriptSourceDirectory>
      <!--该元素设置了项目单元测试使用的源码目录,当测试项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径。--> 
      <testSourceDirectory></testSourceDirectory>
      <!--被编译过的应用程序class文件存放的目录。-->
      <outputDirectory></outputDirectory>
      <!--被编译过的测试class文件存放的目录。-->  
      <testOutputDirectory></testOutputDirectory>
      <!--使用来自该项目的一系列构建扩展-->  
      <extensions>
        <!--描述使用到的构建扩展。--> 
        <extension>
          <!--构建扩展的groupId-->
          <groupId></groupId>
          <!--构建扩展的artifactId-->
          <artifactId></artifactId>
          <!--构建扩展的版本-->
          <version></version>
        </extension>
      </extensions>
    
      <!--当项目没有规定目标(Maven2 叫做阶段)时的默认值-->  
      <defaultGoal></defaultGoal> 
    
      <!--这个元素描述了项目相关的所有资源路径列表,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。--> 
      <resources>
        <!--这个元素描述了项目相关或测试相关的所有资源路径-->
        <resource>
          <!--描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven/messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。-->  
          <targetPath></targetPath> 
          <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。-->  
          <filtering></filtering>
          <!--描述存放资源的目录,该路径相对POM路径-->
          <directory></directory>
          <!--包含的模式列表,例如**/*.xml.--> 
          <includes></includes>
          <!--排除的模式列表,例如**/*.xml-->
          <excludes></excludes>     
        </resource>
      </resources> 
    
      <!--这个元素描述了单元测试相关的所有资源路径,例如和单元测试相关的属性文件。-->
      <testResources> 
        <!--这个元素描述了测试相关的所有资源路径,参见build/resources/resource元素的说明-->  
        <testResource>
          <targetPath></targetPath>
          <filtering></filtering>
          <directory></directory>
          <includes></includes>
          <excludes></excludes>
        </testResource>
      </testResources> 
    
      <!--构建产生的所有文件存放的目录-->
      <directory></directory>
      <!--产生的构件的文件名,默认值是${artifactId}-${version}。-->
      <finalName></finalName>
      <!--当filtering开关打开时,使用到的过滤器属性文件列表-->
      <filters></filters>
    
      <!--子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置--> 
      <pluginManagement>
        <!--使用的插件列表 。-->
        <plugins>
          <!--plugin元素包含描述插件所需要的信息。-->  
          <plugin>
            <!--插件在仓库里的group ID-->
            <groupId/>
            <!--插件在仓库里的artifact ID--> 
            <artifactId/>
            <!--被使用的插件的版本(或版本范围)-->  
            <version/> 
            <!--是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。-->
            <extensions/>  
            <!--在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。-->           <executions>
              <!--execution元素包含了插件执行需要的信息-->  
              <execution>            
                <!--执行目标的标识符,用于标识构建过程中的目标,或者匹配继承过程中需要合并的执行目标-->
                 <id/>
                 <!--绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段-->
                 <phase/> 
                 <!--配置的执行目标-->
                 <goals/>
                 <!--配置是否被传播到子POM-->  
                 <inherited/> 
                 <!--作为DOM对象的配置-->
                 <configuration/>
              </execution>
            </executions>
    
            <!--项目引入插件所需要的额外依赖--> 
            <dependencies>
              <!--参见dependencies/dependency元素-->
              <dependency> 
              </dependency> 
            </dependencies>
    
            <!--任何配置是否被传播到子项目-->  
            <inherited/>
            <!--作为DOM对象的配置-->
            <configuration/>
          </plugin>
        </plugins>
      </pluginManagement>
    
      <!--使用的插件列表--> 
      <plugins>
        <!--参见build/pluginManagement/plugins/plugin元素--> 
        <plugin> 
          <groupId/><artifactId/><version/><extensions/>
          <executions>
            <execution>
              <id/><phase/><goals/><inherited/><configuration/> 
            </execution>
          </executions>
          <dependencies>
            <!--参见dependencies/dependency元素-->
            <dependency>
            </dependency>
          </dependencies>
          <goals/><inherited/><configuration/>
        </plugin> 
      </plugins>
    </build>
    
    <licenses>证书列表</licenses>
    
    <!--描述项目所属组织的各种属性。Maven产生的文档用--> 
    <organization>
      <!--组织的全名-->  
      <name></name>     
      <!--组织主页的URL-->  
      <url></url> 
    </organization>
    
    <!--项目开发者列表-->  
    <developers>
      <!--某个项目开发者的信息-->
      <developer>
        <!--SCM里项目开发者的唯一标识符-->
        <id></id>
        <!--项目开发者的全名-->  
        <name></name>
        <!--项目开发者的email--> 
        <email></email>
        <!--项目开发者的主页的URL-->  
        <url></url>
    
        <!--项目开发者在项目中扮演的角色,角色元素描述了各种角色-->
        <roles> 
          <role></role>
          <role></role> 
        </roles>
        
        <!--项目开发者所属组织-->
        <organization></organization>
        <!--项目开发者所属组织的URL-->
        <organizationUrl></organizationUrl> 
        <!--项目开发者属性,如即时消息如何处理等--> 
        <properties>
          <dept></dept> 
        </properties>
    
        <!--项目开发者所在时区, -11到12范围内的整数。--> 
        <timezone></timezone>
      </developer>
    </developers>
    
    <!--项目的其他贡献者列表--> 
    <contributors>
      <!--项目的其他贡献者。参见developers/developer元素-->
      <contributor>
      </contributor>
    </contributors>
    

    相关文章

      网友评论

          本文标题:【Java】Maven的pom.xml

          本文链接:https://www.haomeiwen.com/subject/hygkaftx.html