我有一个专有的 jar,我想将其作为依赖项添加到我的 pom 中。
但我不想将它添加到存储库中。原因是我希望我常用的 Maven 命令(例如 mvn compile
等)开箱即用。 (不需要开发人员自己将其添加到某个存储库)。
我希望 jar 位于源代码管理中的 3rdparty 库中,并通过 pom.xml 文件中的相对路径链接到它。
这可以做到吗?如何?
原文由 flybywire 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个专有的 jar,我想将其作为依赖项添加到我的 pom 中。
但我不想将它添加到存储库中。原因是我希望我常用的 Maven 命令(例如 mvn compile
等)开箱即用。 (不需要开发人员自己将其添加到某个存储库)。
我希望 jar 位于源代码管理中的 3rdparty 库中,并通过 pom.xml 文件中的相对路径链接到它。
这可以做到吗?如何?
原文由 flybywire 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
如果您真的想要这个(请理解,如果您不能使用公司存储库),那么我的建议是使用项目本地的“文件存储库”,而 不是使用
system
作用域依赖项。应避免system
作用域,此类依赖项在许多情况下(例如在装配中)不能很好地工作,它们带来的麻烦多于好处。因此,改为声明项目本地的存储库:
使用
install:install-file
和localRepositoryPath
参数在其中安装第三方库:更新: 似乎
install:install-file
在使用插件的 2.2 版时忽略了localRepositoryPath
。但是,它适用于 2.3 版及更高版本的插件。所以使用插件的完全限定名称来指定版本:maven-install-plugin 文档
最后,像任何其他依赖项一样声明它(但没有
system
范围):恕我直言,这是比使用
system
范围更好的解决方案,因为您的依赖项将被视为好公民(例如,它将被包含在程序集等中)。现在,我不得不提到在公司环境中处理这种情况的“正确方法”(这里可能不是这种情况)是使用公司存储库。