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 ...
随机推荐
- firefox一搜索就提示是否进入***网站和取消占地方的标题栏
来看一下这个蛋疼的提示 每次都要手动关闭.后来在网上看到一个解决方法 解决方法: 地址栏输入about:config回车进入设置, 去掉警告那个勾 点击确定,进入配置页 搜索 取消最上面方人的fire ...
- MySQL InnoDB Engine--缓冲器数据交换
通常情况下,缓冲池无法将整个数据库所有数据都进行缓冲,而且不同数据的访问频率不一样,有些数据会被频繁访问,而有些数据可能数月不会被访问一次,因此数据库使用最近最少使用LRU latest Recent ...
- css属性的继承性
不可继承属性: 盒子模型属性:width height padding border margin 背景相关属性:background相关(background-image background-si ...
- Bartender 使用 Excel xlsx 数据库时出现 0x800A0E7A
Bartender 使用 Excel 数据库时出现 0x800A0E7A 这是因为没有装 数据库驱动的原因. 安装微软的驱动就可以. 注意是安装 32 位的驱动. https://www.micros ...
- java考试感受
开学不久,我们进行了一次java程序考试.在此之前,老师要求我们在假期自学java并提前发了一个考试样卷,要求用数组编写一个学生信息管理系统并能够实现一系列的功能.由于我早早的便完成了这道题.因此对这 ...
- 论 大并发 下的 乐观锁定 Redis锁定 和 新时代事务
在 <企业应用架构模式> 中 提到了 乐观锁定, 用 时间戳 来 判定 交易 是否有效, 避免 传统事务 的 表锁定 造成 的 瓶颈 . 在 现在的 大并发 的 大环境下, 传统事务 及其 ...
- How tbb proxy works
- xml配置*的问题
spring配置种classpath * 和classpath的问题,class path有多个的情况下,会匹配第一个 <context:component-scan/>中两个**表示可以 ...
- 到底什么是ES索引?
你会发现,其实在ES里面,索引扮演的角色其实并不是存储,而是“索引”,看起来有点傻,但是其实我之前一直理解索引是存储,其实从命名上可以看出来,索引其实是分片的索引,分片的字典,记录了每个分片的位置,索 ...
- Go RPC返回值
Go 语言RPC定义格式如下: func (t T) MethodName(argType T1, replyType T2) error 第一个参数是接收的参数,第二个参数是返回给客户端的参数,第二 ...