安装具有传递依赖/依赖树的第三方库?

时间:2012-01-11 12:58:40

标签: java maven

我是Maven的新手,花了好几个小时来学习基础知识,但我还没有找到任何好的文档,如何在本地安装第三方JAR及其所有(传递)依赖项。

我知道mvn install:install-file会安装一个JAR。但是如何在这样的repsoitory中本地安装:

+ Parent.jar
  + ChildA.jar (Requuired by Parent)
    + ChildB.jar (Required by Child A)

使其更加复杂和现实生活:Parent.jar和ChildA.jar是公共maven存储库中不可用的传统/商业JAR,但是Child B是在公共存储库中找到的jar(例如a伐木罐)。

更新:我不仅希望在本地安装它们(具有系统依赖性),还要“正确”地将它们与maven集成,以便我可以将此依赖关系树重新分发给其他开发人员或公众(我认为这很重要)对于maven),以便maven知道并理解dependecytree(以避免版本冲突,不必要的下载等...)

任何链接或信息如何描述如何做到这一点将是伟大的。

非常感谢!! 标记

4 个答案:

答案 0 :(得分:1)

由于您实际上想要实际发布以便公众中的其他人可以将其与定义的依赖项一起使用,因此您几乎必须将第三方jar放入公开可用的仓库中。

Here are instructions关于如何实现这一点。

请注意,代码的许可可能不允许您将其发布到中央仓库。在部署之前检查它。

答案 1 :(得分:1)

如果它是商业广告,如果您将其部署到中央存储库,则可能违反许可证,并且唯一的办法是部署到公司的存储库(如果您有一个设置)。

为了做到这一点,你需要为childA定义一个pom,将childB指定为依赖项,然后为此运行install:install-file目标。然后为父母做同样的事情,将childA作为依赖。

一旦你这样做,你就可以拿走这些项目,并通过它的GUI(Nexus和Artifactory都通过GUI支持)轻松地将它们上传到你公司的中央仓库。

答案 2 :(得分:0)

我想,你可能会寻找this

如果它们在在线仓库中是无用的,那么Maven会将所有必需的依赖项加载到本地仓库中。如果要安装自己的项目,请使用配置文件设置reactor以在其中包含所有需要的模块并在其上运行mvn install -P yourprofile。有关个人资料的更多信息,请访问here。 Afaik无法将包含其依赖项的项目安装到本地仓库中。

答案 3 :(得分:-1)

如果您需要将其安装到本地Maven存储库,请使用

mvn dependency:go-offline