向Maven项目添加jar库

4

我有一个使用Maven开发的项目。我想将新的jar文件添加到类路径中。我在pom.xml文件中添加了新的依赖:

<dependency>
<groupId>mzmatch</groupId>
<artifactId>mzmatch</artifactId>
<version>1.2.13</version>
</dependency>
所有的jar库都在lib目录中。所有库的名称和它们的位置(在lib目录中)匹配artifactId-version.jar和groupId/artifactId/version。所以我也对我的mzmatch-1.2.13.jar文件做了同样的事情。
除了在pom文件中添加新的依赖项外,我还在Manifest.MF文件中将我的jar添加到类路径中。但是软件仍然看不到我的jar。我还应该做什么?或者我没有正确地添加我的库?

嗯...所以你想将新的jar文件添加到类路径中。为什么要将它添加到pom.xml而不是类路径中呢?你想将你的jar安装到Maven系统中吗?如果是这样,你看过mvn install了吗? - eis
1个回答

9

我假设这是一个你开发的jar包,并且现在想让Maven将其作为依赖项引入。要实现这个目的,你需要将它安装到本地的Maven存储库中,而不是项目的lib目录下,而是.m2目录下(在Windows系统中可能位于主目录下)。你可能想要从命令行运行以下命令:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=mzmatch -DartifactId=mzmatch -Dversion=1.2.13 -Dpackaging=jar

点击 这里 了解更多信息。

编辑1:我假设 OP 并不在一个更大的团队中工作。如果此依赖项是其他开发团队中任何人所需的,那么它需要部署到共享的内部构件存储库中,例如NexusArtifactory。这些应用程序有一个页面用于上传您的构件。

编辑2:在您的 pom.xml 中添加库作为依赖项可以确保 Maven 在编译这个新项目的代码时,在类路径上拥有它。如果您希望在运行时(比如想要可执行 jar 包),并且您希望将其放在您的 MANIFEST.MF 的 Class-Path 条目中,则可以让 Maven 进行设置。但这仍然没有将 mzmatch-1.2.13.jar 文件放在与您的新项目相同的目录中。如果您不想手动执行该操作,Maven 可以为您执行


如果 OP 与其他开发人员一起工作,那么该文件应该部署到共享存储库中,而不是安装到本地文件存储库中。 - jtahlborn
@jtahlborn 假设 OP 是在本地工作。不过,记得加上关于内部仓库的注释。 - davidfmatheson
谢谢。您不需要使用存储库页面,但最可能使用deploy:deploy-file目标。 - jtahlborn
我已经将jar文件安装到仓库中,如何生成新的清单文件?我在清单文件中添加了我的jar文件的类路径并构建了新的jar包,但它仍然看不到我的新jar文件。我不知道为什么它看不到它(( - user1574866
编辑后添加更多信息。你到底想做什么?构建一个可执行的.jar文件吗?请在你的问题中添加一些具体细节。 - davidfmatheson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接