我有一个在Maven开发的项目。我想将新的jar文件添加到classpath。我在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文件中的class-path。但该软件仍然没有看到我的罐子。我还该怎么办?或者我没有正确添加我的库?
答案 0 :(得分: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
查看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。