Maven外部依赖

我需要在我的maven项目中添加大约15个jar子,并且它在远程和中央存储库中都不可用。

但是,我已经实现了如下,

  1. 在我的项目路径中添加了jar(\ src \ lib)
  2. 改变了pom如下,

     XXX YYY system 8.1 ${basedir}\src\lib\YYY.jar  

我的问题:

我是否需要像上面那样分别重复所有15个jar子,或者我们有任何其他方法来绑定这些jar子并将其作为一个依赖路径?

这里讨论的同样的事情Maven:指向多个jar的系统依赖 。 但我想知道我是否可以获得更好的/新的想法,因为这是5年的讨论

Maven版本: 3.3.9

我认为你永远不应该使用systemPath

相反,请考虑将jar安装到本地存储库中,如下所述: https : //maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

Maven允许您通过手动调用在存储库中添加库:

 mvn install:install-file -Dfile= -DgroupId= -DartifactId= -Dversion= -Dpackaging= 

这样做,您的jar将安装在.m2存储库中,并将作为模块中的其他依赖项提供

编辑:我们可以补充一点,当与同伴合作时,我们通常使用我们自己的存储库管理器,如Nexus( http://www.sonatype.org/nexus/ )或Artifactory( https://www.jfrog.com/open-source) / )

我建议使用Maven Repository Manager,例如Nexus(无论如何都推荐使用),并在那里托管你的第三方库而不是一些VCS。

一旦上传了JAR,就可以将它们作为普通依赖项引用。

要将它们作为系统范围处理,您需要将每个jar添加为单独的依赖项。

如果你预先处理并组合jar子(作为一个jar子),你可以指定为“单个”jar,并给它们另一个Maven GAV坐标,如“XXX:MY-SUPER-JAR:1.0”。 注意:我不推荐这个,因为这是一个不好的做法。

正如Prim的回答所示,应该避免系统范围。 只需设置一个本地存储库。