ChatGPT解决这个技术问题 Extra ChatGPT

在 Maven 中添加依赖项

如何获取我拥有的 jar 文件并将其添加到 maven 2 中的依赖系统中?我将成为此依赖项的维护者,并且我的代码在类路径中需要此 jar,以便它能够编译。


C
Community

您必须分两步执行此操作:

1. 为您的 JAR 提供 groupId、artifactId 和版本,并将其添加到您的存储库。

如果您没有内部存储库,而您只是尝试将 JAR 添加到本地存储库,则可以使用任意 groupId/artifactIds 按如下方式安装它:

mvn install:install-file -DgroupId=com.stackoverflow... -DartifactId=yourartifactid... -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/jarfile

如果您有一个内部存储库,并且希望将其提供给组织中的其他开发人员,您也可以将其部署到您的内部存储库中。我只是使用我的存储库的基于 Web 的界面来添加工件,但您应该能够使用 mvn deploy:deploy-file ... 完成同样的事情。

2. 更新依赖项目以引用此 JAR。

然后通过将以下内容添加到元素来更新使用 JAR 的项目的 pom.xml 中的依赖项:

<dependencies>
    ...
    <dependency>
        <groupId>com.stackoverflow...</groupId>
        <artifactId>artifactId...</artifactId>
        <version>1.0</version>
    </dependency>
    ...
</dependencies>

您能否添加有关部署的更多详细信息?我们有一个内部存储库,我想将我的本地 jar 安装文件部署到该存储库,以便其他开发人员和我们的构建服务器也可以获取该 jar。
这个答案应该得到大家的喜欢!我已经使用它成功地在 Google App Engine 和 Heroku 上为我的 Maven 项目添加了依赖项。
F
Frederic Morin

您还可以指定不在 Maven 存储库中的依赖项。当您的团队不存在中央 maven 存储库或如果您有 CI 服务器时可能会很有用

    <dependency>
        <groupId>com.stackoverflow</groupId>
        <artifactId>commons-utils</artifactId>
        <version>1.3</version>
        <scope>system</scope>
        <systemPath>${basedir}/lib/commons-utils.jar</systemPath>
    </dependency>

我可以依赖另一个 pom 文件而不是 jar 吗?
J
Jhonny D. Cano -Leftware-

实际上,在对此进行调查时,我认为所有这些答案都是不正确的。由于我们对 maven 的理解程度,您的问题具有误导性。我说我们是因为我刚刚被介绍给 maven

Eclipse 中,当您想将 jar 文件添加到项目中时,通常您手动下载 jar,然后将其放入 lib 目录中。使用 maven,您不会这样做。这是你要做的:

转到 mvn 存储库

搜索您要添加的库

将依赖语句复制到你的 pom.xml

通过 mvn 重建

现在,maven 将连接并下载 jar 以及依赖项列表,并自动解析 jar 可能具有的任何其他依赖项。因此,如果 jar 还需要公共日志记录,那么也将被下载。


我正在使用 Spring Tool Suite(基于 Eclipse)。在上述解决方案中的第 1 步和第 2 步之后: 1. 在 STS 编辑器中打开 pom.xml,单击底部的“依赖项”选项卡 2.单击“依赖项”组中的“添加” 3.从浏览器窗口复制/粘贴“Maven”选项卡依赖项信息( groupId, artifactId, version) 到 STS 中“选择依赖项”弹出窗口中的相应字段 4. 单击确定 5. 保存 pom.xml 保存后,我在硬盘驱动器上的 maven 目录和 STS 中的 maven 依赖项设置会在几秒钟内更新。您可以直接编辑 .xml,但使用该工具可能有助于避免 xml 格式问题。
这确实是做事的首选方式,但在某些情况下您不能这样做(例如,专有 jar 不在 mvnrepository 上)。在这种情况下,您需要一种“手动”添加它的方法,在这种情况下,另一个答案将有解决方案。
提出的问题也可能不是初学者的问题。我把它放在那些希望在没有正确措辞的情况下做某事的人,这些措辞来自与 maven 合作的时间。 (就像我当时一样)
KISS 谢谢,我读到这是 Java 中的 C# Nuget 等价物,但我试图找出要单击的按钮或要运行的 cmd。不完全是1:1,但可以完成工作。
如何在 intelleJ 的 maven 中重建项目?
F
FabianCook

我会这样做:

在你的 pom 中添加你喜欢的依赖项: com.stackoverflow... artifactId... 1.0 run mvn install 它将尝试下载 jar 并失败。在此过程中,它将为您提供安装 jar 的完整命令以及错误消息。复制该命令并运行它!容易吧?!


k
kdgregory

我假设您询问如何将依赖项推送到“知名存储库”,而不是简单地询问如何更新您的 POM。

如果是,那么 this 就是您要阅读的内容。

对于希望设置内部存储库服务器的任何人,请查看 here(使用 Maven 2 的一半问题在于查找文档)


我想自己保持依赖。这是一个内部图书馆。