maven的话,简单来说就是一个用来构建和管理Java项目的工具。它就是提供了一个标准化的构建生命周期框架,还有一些管理项目需要的依赖,是通过Central Repository,也就是中央仓库来管理项目的依赖关系的。核心是pom文件,pom文件是一个xml文件用来描述项目的依赖关系、构建配置等等,pom文件定义了项目结构包括代码目录、输出目录、依赖关系等等。还有就是maven约定优于配置,因为遵循一些约定可以减少配置工作,用的时候配置就行。maven还支持集多模块项目,就是说可以把一个大项目拆成多个小模块,每个模块可以有自己的pom文件和目录结构。
还有就是maven构建项目具有有序性和一致性,因为maven的生命周期是规定按顺序执行的,每个阶段都依赖于前一个阶段的执行结果。
clean:清理项目,删除之前构建项目所生成的目录、文件
validate:是用来检查项目结构和项目必要信息的,判断项目对不对
complie:编译项目源代码的
test:运行单元测试
package:对编译后的代码打成jar包,可分发的格式
verify:对测试结果验证,看满不满足质量标准
install:把包安装到本地仓库,就能让其他项目使用
deploy:把包复制到远程仓库
site:生成项目文档和报告
坐标由三个部分构成: groupId artifactId、version
表示所属于哪里的标识符类似Java中的包名;项目名称;项目版本号;
是用来标识项目信息的,有了坐标就可以唯一地标识Maven仓库中的一个特定项目。可以更好地管理和组织项目的依赖关系,确保项目构建的一致性和可靠性。还方便地引入其他项目作为依赖,能更轻松地维护和升级这些依赖。
将一个项目分为多个模块使用Maven进行管理的主要目的就是去提高项目的可维护性、可扩展性和复用性,对于较大型和较复杂的项目来说分模块可以带来更多好处:
首先是模块化设计:将项目分为模块有助于模块化设计,每个模块专注于特定的功能或层次。这使得代码更容易理解、维护和修改。每个模块可以独立开发、测试和部署,降低了模块间的耦合性。
然后是有复用性:就是可以使每个模块能被其他项目或模块复用。就比如你可以将一个通用的数据库交互模块用于多个项目的Dao层,从而提高代码的复用性。
还方便团队协作:因为不同成员可以去专注于不同的模块,独立开发和测试,最后各自完成自己的任务后再集成到一个整体项目中。就能并行开发,提高开发效率。
还具有版本控制:因为每个模块都有独立的版本号,就使得在不同模块之间进行版本控制更灵活,比如可以单独更新或回滚某一个模块,它还不会影响整个项目。
还支持构建和部署:提高构建速度,简化集成和持续部署的流程。
虽然在IDE中导入多个项目会增加一些复杂性,但是通过好的项目结构可以换取来更好的可维护性和可扩展性。此外IDE通常还会提供方便的工具和视图,让项目管理变得更容易。
创建父项目(也称为聚合项目)。这个项目的pom.xml文件将包含子模块的定义。在这个pom.xml文件中,你需要指定<modules>元素,其中包含所有子模块的相对路径。
在父项目所在的目录下创建子模块。定义模块之间的依赖关系。每个子模块都应该有自己的pom.xml文件。