在Maven中添加依赖项

时间:2008-12-28 15:06:40

标签: java macos maven-2 dependencies

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

5 个答案:

答案 0 :(得分:139)

您必须分两步完成此操作:

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

如果您没有内部存储库,并且只是尝试将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>

答案 1 :(得分: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>

答案 2 :(得分:45)

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

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

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

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

答案 3 :(得分:14)

我会这样做:

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

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

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

答案 4 :(得分:3)

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

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

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