2011-06-17 53 views
0

我有以下问题。我们的公司服务器上有一个中央maven存储库。我们的团队正在开展一个项目。这里的每个人都使用该存储库来获取所需的工件。如果当前缺少某些内容并且是开发人员当前正在处理的任务所需的内容,则他手动将此工件安装到中央存储库,以便他的提交不会中断自动构建。如何启用玻璃鱼内部访问Maven存储库?

现在,每个开发者也在他的机器上安装了Glassfish v2。这是为了测试和调试目的。在提交更改之前,开发人员使用Maven帮助为项目制作.ear。但是,在开发人员将耳朵部署到本地glassfish之后,会出现频繁的错误,因为glassfish库集可能不包含中央公司资源库的所有最新依赖项。

现在,如果发生错误,开发人员只需读取日志并查看缺少的内容。之后,他手动将所需的jar复制到他的本地$ GLASSFISH_HOME $/lib目录中。但是这似乎有点令人沮丧。这如何自动完成?

现在我们正试图实施以下解决方案。开发人员必须同步他的本地Maven存储库,收集项目所需的中央项目中的所有工件。这个本地存储库必须放在java类路径上,以便glassfish也能看到它。这是一个正确的方法吗?也许有办法直接从$ GLASSFISH_HOME $/dir中的中央存储库中安装所需的所有工件,并且这可以在部署期间自动完成?

回答

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回购,自己的pom,自己的版本,拥有一切)来管理这个项目。

祝你好运。