第五章 坐标和依赖
1.如同笛卡尔坐标系一样,Maven也通过坐标三元素定位一个资源。
<groupId>com.dengchengchao.test</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version>
下面详解一下每个元素的含义:
groupId:
定义当前Maven项目隶属的实际项目。Maven使用模块化的概念,将每个项目分为几个模块,比如SpringFramework分为spring-core,spring-context等。
通常groupId定义到组织下面的项目层次。
比如:一个公司有很多项目,一个项目有很多模块。
那么:groupId对应为项目名称。artifactId定义到模块
artifactId:
定义当前Maven项目隶属的模块。建议使用实际项目作为artifact的名称,比如spring-core不仅仅叫core一样
原因:使用Maven生成的构建,都会使用artifactId作为开头,比如:spring-core-2.0.0.jar,使用实际项目作为前缀之后,相同的项目的模块就会自动的归类到一起,方便区分
version:
定义当前Maven项目的所处版本。Maven定义了一套完整的版本规范以及快照(SHAPSHOT)的概念,将在13章介绍。
以上三个元素用于定位一个Maven项目,也就是说只要这三个元素项目,获取的Maven项目就一定是相同的。
同时,我们也需要其他一些元素描述我们的项目信息,不过,这些都不是必须的元素
packaging:
定义Maven项目的打包方式,需要知道的是,jar打包和war打包的方式不同。packaging默认为jar
classifier:
定义Maven项目生成的附属构建,比如除了生成主构件的jar包以外,还可能生成spring-core-2.0.0-javadoc.jar、spring-core-2.0.0-sources.jar等。
在上述五个元素中,groupId,artifactId,version是必须的,packaging是可选的,classifier是不能直接定义的。
注:packaging不一定与构建扩展名对应。比如使用war打包方式打包的一个项目,最后可能会生成一个非.war文件。