将 jar 库添加到 Maven 项目
Posted
技术标签:
【中文标题】将 jar 库添加到 Maven 项目【英文标题】:Adding jar library to Maven project 【发布时间】:2012-08-13 02:41:39 【问题描述】:我有一个用 Maven 开发的项目。我想将新的 jar 文件添加到类路径。我在 pom.xml 文件中添加了新的依赖项:
<dependency> <groupId>mzmatch</groupId> <artifactId>mzmatch</artifactId> <version>1.2.13</version> </dependency>
所有的 jar 库都在 lib 目录中。所有库的名称都与 artifactId-version.jar 匹配,它们的位置是(在 lib 目录内)groupId/artifactId/version。所以我对我的 mzmatch-1.2.13.jar 文件做了同样的事情。
除了在 pom 文件中添加新的依赖项之外,我还将我的 jar 添加到 Manifest.MF 文件的类路径中。但是软件仍然看不到我的罐子。我还应该做什么?还是我没有正确添加库?
【问题讨论】:
嗯...所以你想将新的 jar 文件添加到类路径。那你为什么将它添加到 pom.xml 而不是类路径?你想将你的 jar 安装到 maven 系统中吗?如果是这样,你有没有看过 mvn install ? 【参考方案1】:我假设这是您开发的一个 jar,现在希望 Maven 将其作为依赖项拾取。为此,您需要将其安装到本地 Maven 存储库。不是项目的 lib 目录,而是 .m2 目录(可能在 Windows 的主目录之外)。你可能想从命令行运行它:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=mzmatch -DartifactId=mzmatch -Dversion=1.2.13 -Dpackaging=jar
查看here 了解更多信息。
编辑 1:我假设 OP 不在一个更大的团队中工作。如果开发团队中的其他任何人都需要依赖项,则需要将其部署到共享的内部工件存储库,例如 Nexus 或 Artifactory。这些应用程序有一个用于上传工件的页面。
编辑 2:在 pom.xml 中添加一个库作为依赖项可确保 Maven 在编译此新项目的代码时将其放在类路径中。如果您希望它在运行时出现(例如,如果您想要一个可执行的 jar),并且您希望将它放在 MANIFEST.MF
的 Class-Path 条目中,那么您可以使用 Maven set it up。这仍然不会将mzmatch-1.2.13.jar
文件放在与新项目相同的目录中。如果您不想手动执行此操作,Maven 可以再次do it for you。
【讨论】:
如果 OP 正在与其他开发人员合作,则该文件应部署到共享存储库,而不是安装到本地文件存储库中。 @jtahlborn 假设 OP 在本地工作。不过,请在内部存储库中添加注释。 谢谢。但是,您不需要使用存储库页面,您很可能会使用deploy:deploy-file
目标。
我在存储库中安装了 jar,如何生成新的 Manifest 文件?我将我的 jar 添加到清单文件中的类路径并构建新的 jar 包,但是,它仍然看不到我的新 jar。我不知道为什么它看不到它((
已编辑以添加更多信息。你到底想做什么?构建一个可执行的.jar?请为您的问题添加更多细节。以上是关于将 jar 库添加到 Maven 项目的主要内容,如果未能解决你的问题,请参考以下文章