码迷,mamicode.com
首页 > 其他好文 > 详细

maven基础知识

时间:2015-07-21 16:54:47      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

1.maven基础知识                                                                                                                                             

1.1maven坐标                                                                                                                                             

  • maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version。项目包含了junit3.8.1,则包含了对junit:junit:jar:3.8.1的依赖。

groupId

d 团体,公司,小组,组织,项目,或者其他团体。团体标识的约定是,它以创建这个项目的组织名称的逆向域名(reverse domain name)开头。

artifactId

在groupId下的表示一个单独项目的唯一标识符。

version

一个项目的特定版本。

项目打包格式也是maven坐标的重要组成部分,但是他不是项目唯一标识符的一个部分。一个项目的groupId:artifactId:version使之成为一个独一无二的项目;你不能同时有一个同样的groupId,artifactId和version标识的项目。

packaging

项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个jar文件,类型为war的项目产生一个web应用。

1.2maven依赖                                                                                                                                        

  •  maven支持传递性依赖(transitive dependencies)。假如你的项目依赖于一个库,而这个库又依赖其他,maven自动加入这些,也可以排除一些特定的传递性依赖。
  • maven中的一个依赖不仅仅是一个jar,他是一个pom(project object model)文件,这个pom可能声明了对其他构建的依赖。
  • maven提供了不同的依赖范围(dependency scope)。simple项目包含了一个依赖:--junit:junit:jar:3.8.1---范围test。当一个依赖的范围是test的时候,说明它在compiler插件运行compile目标的时候是不可用的。它只有在运行compiler:testCompile和surefire:test目标的时候才会被加入到classpath中。
  • 当为项目创建jar文件的时候,它的依赖不会捆绑在生成的构件中,他们只是用来编译。当maven来创建war或jar,你可以配置maven让它在生成的构件中捆绑依赖,也可以用provided范围,让它排除war文件中特定的依赖。provided范围告诉maven一个依赖在编译的时候需要,但是它不应该被捆绑在构件的输出中。当你开发web应用的时候provided范围变得十分有用,你需要Servlet API来编译你的代码,但是你不希望Servlet API的jar文件包含在你的web应用的web-inf/lib目录中。

 

maven基础知识

标签:

原文地址:http://www.cnblogs.com/woshimrf/p/4664773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!