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 ...
随机推荐
- Xenserver之HA实现-NFS的实现
环境: 在vm上安装好一台Xenserver服务器,一台centos7虚拟机(用来做NFS存储,因为实现HA需要共享存储),网络连接方式为桥接模式 echo '- - -'>> /sys/ ...
- day 55 jQuery 之事件 绑定等
属性选择器: [attribute] [attribute=value]// 属性等于 列入 $("input[value='male']").prop('chekced') 注意 ...
- mysql的索引设计原则以及常见索引的区别
索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索 ...
- 06SVM线性不可分时scikit-learn实现
https://blog.csdn.net/weixin_40123108/article/details/84378202 In [5]: from time import time import ...
- iuplua test failure
prepared SW Download from https://sourceforge.net/projects/iup zerobrane Step Write follwiing codes ...
- [转]Proxy代理详解
一.代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的. 动态代理技术就是用来产生一个对象的代理对 ...
- centos7数据库连接使用127.0.0.1报permission denied,使用localhost报No such file or directory
安装lamp环境后,测试数据库连接. 当host使用127.0.0.1时,报错:(HY000/2002): Permission denied. 把host换成localhost后,又报错:SQLST ...
- [VC6] 小谈如何解决VC6.0 open崩溃的问题(已解决)(转)
[昨天重装了系统,开始用VC6还是可以的,后来装了WPS,在用VC6里面的Open就崩溃了. 这个解决方法就这么几步:1.把FileTool.dll放到指定的AddIns目录.2. 注册这个dll到注 ...
- js-自定义对话框
引用插件 <link rel="stylesheet" type="text/css" href="${ctx }/resources/comm ...
- SQL Server Profiler 怎么创建trace来收集sql log(.trc文件)
1. 先安装SQL Server 2008 R2或其他版本的数据库. 2. 打开profiler, 选择新建一个trace,连接到要监控的SQL Server数据库实例. 打开 SQL Serve ...