Maven项目的pom文件中各标签详解

目录

        • 1.声明规范
        • 2.modelVersion
        • 3.packaging
        • 4.name
        • 5.description
        • 6.parent
        • 7.properties(配置全局属性)
        • 8.dependencies
        • 9.build

POM是项目对象模型(Project Obiect Model )的简称。

pom.xml主要描述了项目的maven坐标,该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。是项目级别的配置文件。

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/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0modelVersion>
2.modelVersion


<modelVersion>4.0.0modelVersion>
3.packaging

标签体解析:


<packaging>jarpackaging>

<packaging>pompackaging>
4.name

<name>blogservername>
5.description
 
<description>贝贝无敌帅!!!description>
6.parent

<parent>
     <groupId>org.springframework.bootgroupId>
     <artifactId>spring-boot-starter-parentartifactId>
     <version>1.5.9.RELEASEversion>
     
     <relativePath/> 
parent>
7.properties(配置全局属性)
<properties>
    
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
     
    
    <java.version>1.8java.version>
    <spring.version>5.0.2.RELEASEspring.version> 
properties>

eg:


        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webartifactId>
            
            <version>${spring.version}version> 
        dependency>
8.dependencies
  
<dependencies>
      
    <dependency>
         
        <groupId>org.mybatis.spring.bootgroupId>
        <artifactId>mybatis-spring-boot-starterartifactId>
        <version>1.3.1version>
    dependency>
    
    <dependency>
        <groupId>com.alibabagroupId>
        <artifactId>druidartifactId>
        <version>1.0.29version>
    dependency>

    
    <dependency>
        <groupId>junitgroupId>
        <artifactId>junitartifactId>
        <version>4.12version>
        <scope>testscope>
    dependency>
dependencies>

标签解析:

  • groupld

     
    <groupId>org.sanggroupId>
    
  • artifactId

     
    <artifactId>blogserverartifactId>
    
  • version

    
    <version>0.0.1-SNAPSHOTversion>
    
  • scope

    scope主要是为了管理依赖的部署,确定依赖的使用范围。使用scope标签,可以很方便、直观的进行依赖的总体管理。

    scope的标签体解析:

    我们把.class文件叫做字节码文件,而.java文件叫做源码。

    什么是编译:就是对源码进行翻译,翻译之后就变成了.class文件了。
    什么是运行:编译好了之后,将.class文件装载到JVM上进行执行。

    • compile(默认值)
      缺省值,可省略不写。此值表示该依赖需要参与到项目的编译、测试以及运行周期中,打包时也要包含进去。eg:commons-fileupload

    • provided
      该依赖在打包的时候可以不用包含进去,别的设施会提供。事实上该依赖理论上可以参与编译、测试、运行等周期。相当于compile,但是打包阶段做了exclude(排除)操作,eg:servlet-api、jsp-api

    • runtime
      该依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段。

    • test
      该依赖仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,eg:上面的Junit

    • system
      从参与度来说,和provided相同,但是它不会去maven仓库寻找依赖,而是在本地找,需要配合systemPath标签使用。
      eg:

      <dependency>
          <groupid>org.hamcrestgroupid>
          <artifactid>hamcrest-coreartifactid>
          <version>1.5version>
          <scope>systemscope>
          <systempath>${basedir}/WebContent/WEB-INF/lib/hamcrest-core-1.3.jarsystempath>
      dependency>
      
    1. import
      由maven 2.0.9新加入,只能在dependencyManagement中使用,相当于从其它pom文件中导入依赖设置。
9.build

打开父pom.xml修改打包方式jar为pom,注意:build内容也需要做替换,因为默认的spring-boot-maven-plugin这种方式,等到后期打包的时候它会一直提示你—你引入的依赖不存在!

   
   <build>
        <finalName>${project.artifactId}finalName>
        <plugins>
            
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-resources-pluginartifactId>
                <version>2.7version>
                <configuration>
                    <encoding>UTF-8encoding>
                configuration>
            plugin>
            
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <version>3.2version>
                <configuration>
                    <source>1.7source>
                    <target>1.7target>
                    <encoding>UTF-8encoding>
                configuration>
            plugin>
        plugins>
        <pluginManagement>
            <plugins>
                
                <plugin>
                    <groupId>org.apache.tomcat.mavengroupId>
                    <artifactId>tomcat7-maven-pluginartifactId>
                    <version>2.2version>
                plugin>
            plugins>
        pluginManagement>
  build>

你可能感兴趣的:(Maven,maven,java,spring,boot,xml)