我有以下问题。我们在公司服务器上托管了一个中央maven存储库。我们的团队正在开展一个项目。这里的每个人都使用该存储库来获取所需的工件。如果当前缺少某些内容并且是开发人员当前正在处理的任务所必需的,则他会手动将此工件安装到中央存储库,以便他的提交不会破坏自动构建。
现在,每个开发人员也在他的机器上安装了Glassfish v2。这是为了测试和调试目的。在提交更改之前,开发人员使用Maven帮助为项目创建.ear。但是,在开发人员将耳朵部署到本地玻璃鱼之后,会出现频繁的错误,因为一组glassfish库可能不包含中央公司存储库的所有最新依赖项。
现在,如果出现错误,开发人员只需读取日志并查看究竟缺少的内容。之后,他手动将所需的jar复制到他的本地$ GLASSFISH_HOME $ / lib目录中。但这似乎有点令人沮丧。如何自动完成?
目前我们正在尝试实施以下解决方案。开发人员必须同步他的本地maven存储库,收集项目所需的中心工件的所有工件。这个本地存储库必须放在java类路径上,这样glassfish也会看到它。这是正确的方法吗?也许有一种方法可以直接从$ GLASSFISH_HOME $ / dir中的中央存储库安装所有必需的工件,这可以在部署期间自动完成吗?
答案 0 :(得分:0)
关于必须安装依赖项。如果开发人员需要安装公共maven存储库中缺少的依赖项,请考虑到maven代理通常能够缓存公共存储库。例如,archiva has a proxying cache。如果依赖项是您自己的项目可交付成果,则应考虑releasing and deploying with maven到您公司的回购。
关于最新版本。您需要指定maven应该使用哪个版本的依赖项。我希望手动编辑我的poms,无论如何都有variety of ways to achieve that。
我认为图书馆应该是项目的一部分。如果不是标准的glassfish库,则应将它们作为项目的一部分包含在war文件中。如果不是标准而不是项目的一部分(不是常规方法),可以考虑将这个玻璃鱼作为一个项目自己管理(自己的git / svn repo,自己的pom,自己的版本,拥有所有东西)。