在Maven中添加依赖项

Mil*_*ous 133 java macos dependencies maven-2

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

Jac*_*eow 139

你必须分两步完成:

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
Run Code Online (Sandbox Code Playgroud)

如果您有内部存储库,也可以将其部署到内部存储库,并希望将其提供给组织中的其他开发人员.我只是使用我的存储库的基于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>
Run Code Online (Sandbox Code Playgroud)

  • 您能否添加有关部署的更多详细信息?我们有一个内部存储库,我想将本地jar安装文件部署到该存储库,以便其他开发人员和我们的构建服务器也将获得jar. (3认同)

Fre*_*rin 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>
Run Code Online (Sandbox Code Playgroud)

  • 我可以依赖另一个pom文件而不是jar吗? (4认同)

Kie*_*eli 45

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

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

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

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

  • 我正在使用Spring Tool Suite(基于Eclipse构建).在上述解决方案中的步骤1和2之后:1.在STS编辑器中打开pom.xml,单击底部的"依赖关系"选项卡2.单击"依赖关系"组中的"添加"3.从浏览器窗口复制/粘贴"Maven"选项卡依赖关系信息( STI 4中的"选择依赖关系"弹出窗口中的相应字段中的groupId,artifactId,version).单击确定5.保存pom.xml保存后,我的硬盘驱动器上的maven目录和STS中的maven依赖关系设置会在几秒钟内更新.您可以直接编辑.xml,但使用该工具可能有助于避免xml格式问题. (5认同)
  • 这确实是做事的首选方式,但有些情况下你不能这样做(例如专有jar不在mvnrepository上).在这种情况下,你需要一种方法来"手动"添加它,在这种情况下,另一个答案将有解决方案. (2认同)

小智 14

我这样做:

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

    <dependency>
            <groupId>com.stackoverflow...</groupId>
            <artifactId>artifactId...</artifactId>
            <version>1.0</version>
    </dependency>
    
    Run Code Online (Sandbox Code Playgroud)

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