zoukankan      html  css  js  c++  java
  • 第3章 一切基于pom

    第3章 一切基于pom

    本章介绍了maven的核心pom.xml作用,详细描述了maven坐标变量。

     

    3.1 什么是pom.xml

    POM是项目对象模型(Project Object Model)的简称,它是Maven项目中的文件,使用XML表示,名称叫做pom.xml。maven项目中,除了一堆代码文件和跟项目有关的依赖文件外,还会包含一个pom.xml配置文件,这个文件配置了maven打包、编译、版本、路径等等的信息。其实,maven项目可以什么都没有,甚至没有代码,但是必须包含pom.xml文件。

    3.2 maven坐标

    maven坐标为各种构件引入了秩序,任何一个构件都必须明确定义自己的坐标,一组maven坐标包含:groupIdartifactIdversionpackagingclassifier

    坐标值介绍
    groupId 定义当前maven项目隶属的实际项目,一个实际项目会有一个或多个maven项目。例如:springframework这一实际项目,包含多个maven项目,如spring-core、spring-aop、spring-beans、spring-webmvc等等。
    artifactId 定义一个实际项目中的maven项目(模块),建议使用实际项目为前缀,例如org.hibernate。
    version 定义maven项目当前的版本。
    packaging 定义maven项目的打包方式。一般有jar、war、pom等。
    classifier 定义maven在相同版本下针对不同的环境或者jdk使用的jar。

    3.3 pom.xml基本介绍

    3.3.1 基础标签

    基础标签描述了项目的坐标和其他信息。

        <modelVersion>4.0.0</modelVersion>
        <groupId>com.xxx</groupId>
        <artifactId>xxx_api</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
        <name>xxx_api Maven Webapp</name>
        <url>http://maven.apache.org</url>

    3.3.2 继承标签

    继承标签描述了父项目的坐标和路径

    <parent>
        <groupId>com.crm</groupId>
        <artifactId>crm-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../crm-parent/pom.xml</relativePath>
    </parent>
    

    3.3.3 聚合标签

    聚合标签描述了需要管理的子项目的路径

    <modules>
        <module>../crm-dao</module>
        <module>../crm-service</module>
        <module>../crm-web</module>
    </modules>
    

    3.3.4 依赖标签

    <dependencies>
        <dependency>
            <groupId> javax.servlet </groupId>
            <artifactId>jstl/artifactId>
            <version>1.2</version>
        </dependency>
        ……
    </dependencies>
    

    3.3.5 构建标签

    <build>
        <finalName>crm-web </finalName>
        <resources>
            <resource>
                <directory>${basedir}/src/${env}/resources</directory>
            </resource>
        </resources>
        <outputDirectory>${basedir}/src/main/webapp/WEB-INF/classes</outputDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <warName>xxxxxx</warName>
                </configuration>
            </plugin>
            <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-compiler-plugin</artifactId>
                   <version>2.3.2</version>
                   <configuration>
                       <source>${jdk.version}</source>
                       <target>${jdk.version}</target>
                   </configuration>
               </plugin>
        </plugins>
    </build>
    

    resources:描述工程中资源的位置。

    outputDirectory:项目输出路径,默认情况下,项目的编译class是放在${basedir}/target下。

    plugin:插件标签,描述项目工程需要的插件和插件的配置。

    configuration:插件的一些配置信息。

    3.3.6 maven隐式变量

    ${basedir}项目根目录
    ${project.build.directory} 构建目录,缺省为target
    ${project.build.outputDirectory}构建过程输出目录,缺省为target/classes
    ${project.build.finalName}产出物名称,缺省为${project.artifactId}-${project.version}
    ${project.packaging} 打包类型,缺省为jar
    ${project.xxx}当前pom文件的任意节点的内容


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    决策树
    Linux登录指令-ssh
    CentOS下搭建Hive
    server 2008 ftp 环境重点说明
    搭建ftp环境
    supesite 连 discuz 论坛记录
    安装ucenter 步骤详解及supesite 安装详解
    最近打算 学点东西,不能 再这样下去了
    今天知道了一个 反向代理,是apache 的一个功能,这里记录一下
    最近 弄了一个 discuz 7.2,管理员发帖 会出现 很多错误,解决 办法 在别的帖子中找到了
  • 原文地址:https://www.cnblogs.com/jdbc/p/4975492.html
Copyright © 2011-2022 走看看