读书笔记-《Maven实战》-2018/4/17

第五章 坐标和依赖

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文件。

2. Maven项目实战:搭建邮件系统

原文地址:https://www.cnblogs.com/dengchengchao/p/8876882.html