zoukankan      html  css  js  c++  java
  • Maven Project pom.xml属性解析

    pom.xml文件:

      groupId  定义了项目属于哪个组,根据自己的情况命名,比如谷歌公司的angular项目,就取名为 com.google.angular
      artifactId   定义了当前Maven项目在组中唯一的ID,比如定义angular。
      version   指定了项目当前的版本0.0.1-SNAPSHOT,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的。
      name     元素生命了一个对于用户更为友好的项目名称,虽然这不是必须的,但还是推荐为每个POM声明name,以方便信息交流

     1 <dependencies>
     2     <dependency>
     3         <groupId>实际项目</groupId>
     4      <artifactId>模块</artifactId>
     5      <version>版本</version>
     6      <type>依赖类型</type>
     7      <scope>依赖范围</scope>
     8      <optional>依赖是否可选</optional>
     9      <!—主要用于排除传递性依赖-->
    10      <exclusions>
    11          <exclusion>
    12            <groupId>…</groupId>
    13           <artifactId>…</artifactId>
    14        </exclusion>
    15      </exclusions>
    16   </dependency>
    17 <dependencies>

    根元素project下的dependencies可以包含一个或者多个dependency元素,以声明一个或者多个项目依赖。每个依赖可以包含的元素有:  

      grounpId、artifactId和version:    以来的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven根据坐标才能找到需要的依赖。
      type:                依赖的类型,对于项目坐标定义的packaging。大部分情况下,该元素不必声明,其默认值为jar
      scope:                依赖的范围
      optional:               选择性依赖,在依赖项目中配置去除依赖的传递性,
      exclusion              排除依赖,在引入项目中配置去除指定依赖
      <properties></properties>                  统一设置版本号,$(name)取值,具有传递性。
      <dependencyManagement></dependencyManagement>     管理共同依赖的jar包,使其他项目继承时使用的是同一个版本jar包

    Maven依赖规则:
      1.路径最近者优先,c->b->a,c依赖b,b依赖a,c会优先采用b的jar包
      2.路径相同配置最前者优先,c->b,c->a,c依赖b,c也依赖a,必须看b,a在c中声明顺序,优先使用先声明的jar包

    • 引入 net.sf.json.JSONObject 类配置POM,JSONObject需要依赖如下依赖包

    json-lib  commons-beanutils  commons-collections  commons-lang  commons-logging  ezmorph

    1 <properties>
    2     <!--JSONObject-->
    3     <json-lib.version>2.4</json-lib.version>
    4     <commons-lang.version>2.5</commons-lang.version>
    5     <commons-collections.version>3.2.1</commons-collections.version>
    6     <commons-beanutils.version>1.8.0</commons-beanutils.version>
    7     <commons-logging.version>1.1.1</commons-logging.version>
    8     <ezmorph.version>1.0.6</ezmorph.version>
    9 </properties>
     1 <!--JSONObject-->
     2 <dependency>
     3     <groupId>net.sf.json-lib</groupId>
     4     <artifactId>json-lib</artifactId>
     5     <version>${json-lib.version}</version>
     6     <classifier>jdk15</classifier>
     7 </dependency>
     8 <dependency>
     9     <groupId>commons-beanutils</groupId>
    10     <artifactId>commons-beanutils</artifactId>
    11     <version>${commons-beanutils.version}</version>
    12 </dependency>
    13 <dependency>
    14     <groupId>commons-logging</groupId>
    15     <artifactId>commons-logging</artifactId>
    16     <version>${commons-logging.version}</version>
    17 </dependency>
    18 <dependency>
    19     <groupId>net.sf.ezmorph</groupId>
    20     <artifactId>ezmorph</artifactId>
    21     <version>${ezmorph.version}</version>
    22 </dependency>
    23 <!-- apache-common -->
    24 <dependency>
    25     <groupId>commons-lang</groupId>
    26     <artifactId>commons-lang</artifactId>
    27     <version>${commons-lang.version}</version>
    28 </dependency>
    29 <dependency>
    30     <groupId>commons-collections</groupId>
    31     <artifactId>commons-collections</artifactId>
    32     <version>${commons-collections.version}</version>
    33 </dependency>

     参考资料:http://mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.4    

    •  fastjson中JSON.parseObject,是将Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串。 
    1 <properties>
    2     <fastjson.version>1.2.28</fastjson.version>
    3 </properties>
    1 <dependency>
    2     <groupId>com.alibaba</groupId>
    3     <artifactId>fastjson</artifactId>
    4     <version>${fastjson.version}</version>
    5 </dependency>

    Maven常用命令:

    mvn clean:表示运行清理操作(会默认把target文件夹中的数据清理)。
    mvn clean compile:表示先运行清理之后运行编译,会将代码编译到target文件夹中。
    mvn clean test:运行清理和测试。
    mvn clean package:运行清理和打包。
    mvn clean install:运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用。
    mvn clean deploy:运行清理和发布(发布到私服上面)

    maven添加管理多个模块:
    1.新建立maven项目,删除src目录;
    2.右键新加Module,选择新建maven-webapp项目,路径选择新加模块文件夹
    3.IDEA自动添加子模块文件夹

      手动配置
    主maven配置文件

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     2          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     3     <modelVersion>4.0.0</modelVersion>
     4     <groupId>com.zsm.plugin</groupId>
     5     <artifactId>Plugins</artifactId>
     6     <name>Plugins Maven WebApp</name>
     7     <url>http://maven.apache.org</url>
     8     <!--打包类型选择pom -->
     9     <packaging>pom</packaging>
    10     <version>1.0-SNAPSHOT</version>
    11     <modules>
    12         <!--子模块-->
    13         <module>BigData</module>
    14         <module>FASTDFS</module>
    15     </modules>
    16     <dependencies>
    17     </dependencies>
    18 </project>

    子模块配置文件添加如下:

    <parent>
    <artifactId>ZSMWeb</artifactId>
    <groupId>com.ZSM</groupId>
    <version>1.0.0</version>
    </parent>

     Maven配置引入本地jar依赖:

    <dependency>
        <groupId>com.fsnip</groupId>
        <artifactId>fastdfs</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/src/main/lib/myself-client.jar</systemPath>
    </dependency>

     Version 定义规则:2.3.1012

    主版本号:            表示项目的重大架构变更
    此版本号:           表示较大范围的功能添加和变化
    增量版本号:          一般表示重大bug修复
    2.3.1012
    snapshot             快照
    alpha             内测
    beta               公测
    release             稳定版本
    6A               最稳定版本
    Final              正式版
    Pro(professional)          专业版
    Plus               加强版
    Retail             零售版
    DEMO              演示版
    Build              内部标号
    Delux             豪华版(deluxe:豪华的,华丽的)
    Corporation|Enterprise      企业版
    M1 M2 M3             M是milestone,里程碑
    RC版本               RC(Release Candidate)。修订版本几乎不会加入新的功能,而主要着重于除错
    SR               修正版
    Trial               试用版
    Shareware            共享版
    Full                完全版

     推荐资料:http://www.cnblogs.com/ygj0930/category/973951.html

    持续更新中,谢谢关注!

  • 相关阅读:
    团队作业第四次—项目系统设计与数据库设计
    团队Github实战训练
    第三次团队作业(需求分析)
    团队作业——UML设计
    项目介绍
    Happy Tree Friends——团队展示
    Alpha冲刺 (1/9)
    团队作业第四次—项目系统设计与数据库设计
    团队Github实战训练
    团队作业——需求分析
  • 原文地址:https://www.cnblogs.com/zengming/p/7805255.html
Copyright © 2011-2022 走看看