我在工作中要求Maven培训,并且老板想聘请知道Maven的人作为顾问与我们一起工作,这样我们就可以从现实世界而不是培训角度学习Maven。
我的任务是提出各种困难的问题,询问潜在的雇员,以确定他们的Maven能力。问题是我还没有完全理解Maven(因此是培训请求)。
你会问某人有什么问题来确定他们的Maven能力,以及Maven有什么级别的知识来回答他们?
答案 0 :(得分:34)
在我看来,“Maven顾问”应该:
dependencyManagement
。拥有这些技能的人应该让你走上正确的道路(很有可能体验到Maven)。
答案 1 :(得分:5)
这里有很多好问题,尤其是Pascal Thivent提出的问题。但是,我会问另一个问题:
问:Maven中聚合和继承有什么区别?
答:您可以提供简短的解释here。
答案 2 :(得分:4)
我建议你考虑一下你想用Maven做什么,或者为什么要把它介绍给你的项目。也许问你的老板介绍Maven的原因/目标。
在您为主要目标命名为什么以引入Maven之后。询问潜在的顾问如何他们会使用Maven来实现这些目标。
示例1
目标:提高项目的整体代码质量。
问题:我们如何使用Maven来提高项目的整体代码质量。
可能的答案:Maven有几个插件可以强制/确保项目中的代码质量,我们几乎可以立即将它们集成到我们的构建脚本中。 (例如checkstlye,pmd,cobertura,xradar ......)
示例2
目标:为多个目标环境创建自动部署脚本。
问题:我们如何使用Maven自动将工件部署到多个目标环境。
可能的答案:我们可以使用Maven插件进行部署(例如Cargo)并使用maven的配置文件来处理多种配置。
a.s.o。
答案 3 :(得分:4)
我会问:
两者都是非常开放的问题,但是它们应该让你对他的技能有所了解,你可以向他学习什么,以及他可以为你的公司带来什么。
修改强>
Maven只是整体软件配置管理(SCM)战略的一部分。一个好的顾问应该知道maven进出的细节,但也知道它如何适应大局。就像您期望Java EE顾问成为Java专家一样,但要了解向客户提供企业应用程序意味着什么。
在我工作的公司里,我们有一个负责SCM的人,他是Maven的贡献者。他的观点比“只是”maven更广泛。他负责建立高效的构建,配置和发布流程。两个例子:
我们在java代码中对版本号进行了硬编码,以便能够将其显示在桌面应用程序的“about”对话框中。大部分时间我们忘记在发布后更改它,导致实际版本号和关于对话框之间不匹配 - 现场集成商的大问题。这是一个不好的做法。然后他设置了一些东西,以便Maven中的版本号在manifest
文件中是正确的,并教育我们从Java中读取manifest
文件以确保两者匹配。
当您发布模块时,他编写了一个脚本,不仅可以构建应用程序,还可以关闭故障单系统(JIRA)中的相应版本,并在Wiki中推送发行说明。
所有这一切都说知道如何“对项目进行”“重要”,但更重要的是,这个人必须了解你目前的工作方式,现状和帮助你设置一些合理的方法来提高你的工作效率。
答案 4 :(得分:1)
以下是我要问的问题:
所有这些问题至少有两个答案。我会寻找能够提供至少两个答案的人,并指出每种方法的优缺点。理想情况下,这个人应该调整设置,以减少对环境工作方式的破坏。
答案 5 :(得分:0)
如果你有奢侈品,我建议让顾问到现场待一天,给他/她一个你正在处理的现有java项目,并让他/她“为你”“mavenize”。第二天,与他/她坐在一起,让他们解释如何编译,并建立一个罐子(或战争)。
或者让他们来参加一个maven项目的采访来展示。应该能够编译,并至少建立一个jar / war,imo。如果他们可以运行单元测试,部署到tomcat,集成任何各种框架,如gwt,hibernate,spring等,那么更好。