Maven项目的创建
一、坐标的含义:
(1)每一个jar文件都有一个唯一坐标,通过坐标可以精确确定是哪一个jar包;
(2)坐标组成:
二、创建步骤:
- 新建Meven Project
- 勾选创建简单项目
- 注意:如果不勾选,会出现很多模板要选择
- 勾选的情况下,填写项目信息
重点:packaging :表示项目的类型,最终会被打包成什么类型,因为maven有自动打包功能
(1) jar:java 项目;
(2) war: web项目;
(3) pom:逻辑父项目;
3.1只要一个项目有子项目,就必须是pom类型;
3.2英文名称(project object model;
3.3中文名称(项目对象模型)
3.3.1 把project当作对象看待;
3.3.2 通过maven构建工具可以让对象(项目)和对象(项目)之间产生关系;
- 之后点击Finish等带创建,之后在项目中会多一个路径。
Maven项目目录结构(jar类型)
一、截图
二、目录结构解释:
- src/main/java
是真实目录src的快捷目录,实际存储在src下,用来写Java代码。 - src/main/resources,快捷目录
3.1存放配置文件
3.2虽然看见resources,但是里面所有的配置文件最终会被编译放入到classes类路径,即项目根目录下。
3.3进行项目安装到本地后可以看到3.2的效果:
- src/text/java 写测试代码
- src/test/resources 测试配置文件夹
- pom.xml maven 的配置文件
6.1 添加当前项目所依赖的其他项目或jar,插件等
6.2 好处:
(1)不用导出jar包也可以产生项目关系;
(2)修改源代码方便,不用重新导出jar包;
(3)可以直接查看源代码,不需要关联源码;
(4)可以直接导入jar包及相关jar包。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
</dependencies>
注意:
三、maven依赖坐标查看网址
四、maven项目之间的关系(三大关系)
- 依赖关系:
(1)使用<dependency>标签引入另一个项目或另一个项目的jar
(2)好处:会自动下载另一个项目所依赖的其他项目
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.6.RELEASE</version>
</dependency>
</dependencies>
-
继承关系:
(1)新建的父项目必须是pom类型;
(2)子项目是jar类型或war类型,如果子项目还是其他项目的父项目,则这个子项目也是pom类型;
(3)有继承关系后,子项目会出现 <parent>标签,而且如果子项目<groupId>和<version>与父项目相同,在子项目中可以不配置;
(4)父项目的pom.xml文件中是看不到有哪些子项目的,只是在逻辑上具有父子项目关系。
在父项目的pom.xml中引入的jar在子项目中都有。 -
聚合关系
(1)前提是继承关系,父项目会把子项目包含到父项目中;
(2)子项目的类型必须是Maven Module而不是maven project;
(3)新建聚合项目的子项目时,点击父项目右键新建maven module项目;
(4) 具有聚合关系的父项目,在pom.xml中有<modules>标签;
(5)具有聚合关系的子项目,在pom.xml中有<parent>;
-
聚合项目和继承项目的区别
(1)在语意上聚合项目父项目和子项目关系性较强;
(2)在语义上单纯继承项目父项目和子项目关系性弱; -
<dependencyManagement>的作用:写在父项目中,声明可能用到的所有jar,并且父项目的依赖不会被子项目继承。
用法:
(1)在父项目pom.xml中添加所有可能会用到的jar;
(2)在子项目中写该子项目需要用到的依赖,子项目只需要有坐标的<groupid>和<artifactid>,<version>继承自父项目;
(3)在父项目中使用<properties>把所有版本号进行统一管理,<properties>下子标签名称自定义,在下面版本号中使用${}引用;
注意:这样写可以方便父项目统一管理所有子项目的依赖的版本号。而且,使用<properties>标签可以在jar包多的时候方便修改jar包的版本。