导航

Maven Project pom.xml属性解析

Posted on 2017-11-08 17:38  水木山川  阅读(733)  评论(0编辑  收藏  举报

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

持续更新中,谢谢关注!