Maven Project pom.xml属性解析
pom.xml文件:
groupId 定义了项目属于哪个组,根据自己的情况命名,比如谷歌公司的angular项目,就取名为 com.google.angular
artifactId 定义了当前Maven项目在组中唯一的ID,比如定义angular。
version 指定了项目当前的版本0.0.1-SNAPSHOT,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的。
name 元素生命了一个对于用户更为友好的项目名称,虽然这不是必须的,但还是推荐为每个POM声明name,以方便信息交流
<dependencies>
<dependency>
<groupId>实际项目</groupId>
<artifactId>模块</artifactId>
<version>版本</version>
<type>依赖类型</type>
<scope>依赖范围</scope>
<optional>依赖是否可选</optional>
<!—主要用于排除传递性依赖-->
<exclusions>
<exclusion>
<groupId>…</groupId>
<artifactId>…</artifactId>
</exclusion>
</exclusions>
</dependency>
<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
<properties>
<!--JSONObject-->
<json-lib.version>2.4</json-lib.version>
<commons-lang.version>2.5</commons-lang.version>
<commons-collections.version>3.2.</commons-collections.version>
<commons-beanutils.version>1.8.</commons-beanutils.version>
<commons-logging.version>1.1.</commons-logging.version>
<ezmorph.version>1.0.</ezmorph.version>
</properties>
<!--JSONObject-->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>${json-lib.version}</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>${commons-beanutils.version}</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons-logging.version}</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>${ezmorph.version}</version>
</dependency>
<!-- apache-common -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commons-lang.version}</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>${commons-collections.version}</version>
</dependency>
参考资料:http://mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.4
- fastjson中JSON.parseObject,是将Json字符串转化为相应的对象;JSON.toJSONString则是将对象转化为Json字符串。
<properties>
<fastjson.version>1.2.</fastjson.version>
</properties>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</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配置文件
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.</modelVersion>
<groupId>com.zsm.plugin</groupId>
<artifactId>Plugins</artifactId>
<name>Plugins Maven WebApp</name>
<url>http://maven.apache.org</url>
<!--打包类型选择pom -->
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<!--子模块-->
<module>BigData</module>
<module>FASTDFS</module>
</modules>
<dependencies>
</dependencies>
</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
持续更新中,谢谢关注!
Maven Project pom.xml属性解析的更多相关文章
- Idea项目:Failed to create a Maven project ‘…pom.xml’ already exists in VFS 解决
在IDEA里面创建Module,因为项目类型原因删掉,又重新创建一个新的,名字没有变.于是报错: Failed to create a Maven project: '**/***/pom.xml' ...
- maven课程 项目管理利器-maven 3-6 maven中Pom.xml的解析 3星
本节主要讲了pom中常用的标签 1 常用的标签 2 非常用的标签 1 常用的标签 a 坐标 groupid 反写公司网址+项目名 artifactId 项目名+模块名 version 版本号:3位版本 ...
- Maven项目pom.xml文件简单解析
Maven项目pom.xml简单解析 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h ...
- SSH项目搭建(四)——Maven的pom.xml配置
史上最全的maven的pom.xml文件详解: https://www.cnblogs.com/qq765065332/p/9238135.html 下面的节点有不理解是啥意思的可以到上面链接的文章里 ...
- maven(4)------maven核心pom.xml文件常用元素分析
在maven项目中,pom文件是核心文件 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <p ...
- 史上最全的maven的pom.xml文件详解(转载)
此文出处:史上最全的maven的pom.xml文件详解——阿豪聊干货 <project xmlns="http://maven.apache.org/POM/4.0.0" x ...
- Maven项目pom.xml配置详解
maven项目pom.xml文件配置详解,需要时可以用作参考: <project xmlns="http://maven.apache.org/POM/4.0.0" xmln ...
- (六)Maven之pom.xml文件简单说明
通过前面几部分知识,我们对maven已经有了初步的印象,就像Make的Makefile.Ant的build.xml一样,Maven项目的核心是pom.xml.POM(Project Object Mo ...
- (转)Maven的pom.xml文件结构之Build配置build
在Maven的pom.xml文件中,Build相关配置包含两个部分,一个是<build>,另一个是<reporting>,这里我们只介绍<build>. 1. 在M ...
随机推荐
- MySQL Replication--GTID基础
====================================== TID(Trasaction ID)TID代表实例上已经提交的事务数量,并随着事务提交递增 UUID代表MYSQL实例的唯 ...
- Power consumption comparison
Here is my draft evaluation when old MCU replacement for power consumption, the comparsion betwween ...
- UWA 转载
性能优化,进无止境-内存篇 https://blog.uwa4d.com/archives/optimzation_memory_1.html https://blog.uwa4d.com/archi ...
- 模拟实现memcpy 与 memmove
模拟实现memcpy 与 memmove 1.str系列的函数只能处理字符串——>必须带有'\0'2.memcpy内存处理函数:不涉及'\0',需要包含头文件 string.h3.source的 ...
- 对象的继承(prototype)
修改构造函数的原型对象,批量修改所有子对象的继承关系
- 建立你第一个 Outlook Add-in
最近因为工作需要,研究了下Outlook Add-in 和 Graph API.下面带大家建立一个Hello World 项目 建立Add-in 先前需求: Node.js 使用cmd/PowerSh ...
- 使用.pth文件扩展python环境路径
使用.pth文件扩展python环境路径 有时候我们不希望把一个库放到 site-packages 下面,而是更愿意把它保留在原始的工程目录中,方便管理和维护.那么怎么能让 Python 运行环境找到 ...
- bzoj 4660 Crazy Rabbit——LIS解决“相交”限制的思想
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4660 想到一个点可以用它与圆的两个切点表示.并想到可以把切点极角排序,那么就变成环上的一些区 ...
- C# 装箱
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C#:匿名类型
匿名类型和var关键字是Visual C# 3.0提供的一个新特性,var是隐式类型而并不是类型javascript中的var. var user = new { Id = 1, Name = &qu ...