浅谈Java web框架课程中Maven的教学内容和设计

2021-09-23 04:01王崟
电脑知识与技术 2021年24期

王崟

摘要:Maven作为一个项目管理工具,主要用于基于Java平台的项目构建。现在很多学校也开设了基于框架的Java Web课程,但很少会单独开设Maven课程。该文列举了在框架课程中直接使用Maven来构建项目面临的问题,提出了改进措施,并介绍了具体的教学内容和实施过程。

关键词:Java web框架课程;Maven

1 引言

Maven作为一个项目管理工具,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。在基于框架的Java web项目中不可避免地要使用大量的第三方jar包,需要使用Maven进行项目构建和依赖管理。而高职院校Java服务端开发课程可能会包含Java web、SSM、Spring boot等课程,但一般不会单独开设Maven课程。框架课程中往往就直接使用Maven来构建项目和管理依赖,这会导致学生只是知道这样构建,却不知道各种命令和配置的含义,在以后独立构建项目的时候会遇到很多困难。本人通过教学经验,浅谈Maven如何融入框架课程教学中,以及教学内容和设计。

2 在框架课程中直接使用Maven来构建项目面临的主要问题

由于院校一般不会单独开设Maven课程,在框架课程中往往直接使用Maven来构建项目。使用之前并不会对Maven的基本概念、规则、命令、配置等做详细的讲解。这会导致课程开展过程中遇到下面一些问题:

1) 由于学生缺乏对Maven最基本规则的认识,对Maven生命周期和基本命令不了解。在集成开发环境下直接配置和使用maven构建项目时,只能跟随步骤操作,不理解每步操作的原因,甚至不知道为什么要这样操作,也不知道每种操作会产生怎样的结果和输出。特别是在集成开发环境中可视化的操作下,一旦遇到问题,不知道如何解决。

2) 管理项目依赖时,往往会把需要的依赖配置直接给学生,学生直接把POM文件拿来使用。而某个框架项目所需的依赖配置并不具有唯一性,可能多种不同的配置方式均可以构建成功。学生缺少对于Maven依赖管理基本规则的理解,不清楚依赖传递和依赖调解,更不清楚何时需要排除依赖,导致学生并不清楚某一框架究竟需要哪些依赖,也不能理解其他解决方案。在学生以后的学习和工作中,经常会发现他们会在网上寻找某些框架的依赖配置,如果能用就直接使用,如果不能使用,也不知道问题在哪里。

3) 过于依赖集成开发环境,不同开发环境中配置和使用Maven存在差异,不同的Maven版本和集成開发环境版本也需要合理的搭配。由于不清楚Maven工程的基本结构和构建过程,在升级或者更换开发环境时会觉得很困难。学生往往会跟随网上的视频或文章来进行配置,但一旦最后出错,不知道原因,也无法解决。

4) Maven只是框架开发中使用的构建工具,不是框架开发课程的核心。但教学过程中,特别是初期,由于学生使用Maven构建项目出现问题,无法运行出结果,这样一来,本来应该用在框架技术本身的时间反而减少了,大量时间用来解决Maven构建项目时出现的问题。

3 教学改进措施

3.1 将Maven的切入时机延后

在框架课程开始不要使用Maven来构建项目,以SSM课程为例,在讲解3个框架和进行技能训练时,还是使用传统的手动方式来创建工程以及维护第三方Jar包。这样可以让学生清楚地了解每种框架需要哪些类库,框架之间的整合又需要哪些类库,而且还能切实地感受到手动维护项目依赖的难度,体会其中可能发生的版本冲突。

在框架技术内容全部结束之后,再引入Maven,沿用之前的项目代码,换成Maven方式进行构建。这样可以更有针对性的介绍Maven,便于学生将传统方式的工程和Maven工程结构进行比较。学生也能体会使用Maven管理依赖的优势,也更能读懂POM文件中的依赖基本配置。可以让学生更好地体会Maven构建方式的不同和优势。

3.2 强化Maven基本命令和命令行下的构建

开始引入Maven时不要在集成开发环境下配置和使用,而是让学生在命令行中使用命令手动创建、编译、测试、打包、运行Maven Java项目和Java web项目。通过这种方式让学生熟悉Maven工程的结构组织,包括源码结构、输出文件夹结构、POM文件基本结构。在使用命令构建项目的过程中,熟悉基本命令的作用,了解Maven生命周期的主要阶段,每个主要阶段做了什么事情。

学生熟悉Maven工程基本结构和命令之后,很容易就可以在集成开发环境下创建Maven工程,也更容易理解各种maven工具菜单的功能。如果在集成开发环境下构建出现问题,可以很容易地切换到命令行下进行构建。

3.3 着重讲解Maven依赖管理

Maven的一大功能就是管理依赖,学生必须理解Maven的依赖配置,了解依赖的几种范围,理解依赖的传递性,以及存在多条依赖路径时,Maven如何选择。更进一步的,还需要理解什么情况下会产生依赖冲突,何时需要排除依赖,依赖版本管理和依赖优化。这些基本概念均可以在实践操作中通过修改POM来进行测试。学生通过这部分内容的学习,就能够看懂常规的依赖配置,还可以很好地进行修改和优化。

3.4 教会学生按需搜索依赖

工作中不可避免的需要自己去查找和使用某些依赖,这时不能完全依靠网上的文章,需要自己去仓库中搜索依赖坐标,搜索的同时也要能看懂该依赖引入的其他传递依赖。教学过程中要布置任务让学生自行寻找和配置依赖,并合理地去处理传递依赖可能带来的冲突。

4 具体教学内容和实施过程

实际教学中是将Maven内容安排在SSM课程的后续实训课程中,在实训开始阶段讲解和练习Maven。将SSM课程中几个典型案例使用Maven方式进行构建,先在命令行下使用命令构建,熟悉之后再使用集成开发环境。在技能训练过程中穿插Maven基本知识点和配置的讲解。