137

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

4

5 回答 5

140

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

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>
于 2008-12-28T22:25:38.367 回答
93

您还可以指定不在 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>
于 2009-04-19T07:49:42.623 回答
48

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

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

  • 转到mvn 存储库
  • 搜索您要添加的库
  • dependency声明复制到您的pom.xml
  • 通过重建mvn

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

于 2009-01-12T15:08:32.310 回答
14

我会这样做:

  1. 在你的 pom 中添加你喜欢的依赖项:

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

  2. 运行mvn install它将尝试下载 jar 并失败。在此过程中,它将为您提供安装 jar 的完整命令以及错误消息。复制该命令并运行它!容易吧?!

于 2008-12-29T12:53:57.383 回答
3

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

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

对于希望建立内部存储库服务器的任何人,请看这里(使用 Maven 2 的一半问题是查找文档)

于 2008-12-28T15:32:50.090 回答