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
持续更新中,谢谢关注!