Java Maven外部依赖
我需要在我的maven项目中添加大约15个JAR,但它在远程和中央存储库中都不可用 但是,我已经实现了以下目标:Java Maven外部依赖,java,maven,Java,Maven,我需要在我的maven项目中添加大约15个JAR,但它在远程和中央存储库中都不可用 但是,我已经实现了以下目标: <dependency> <groupId>XXX</groupId> <artifactId>YYY</artifactId> <scope>system</scope> <version>8.1</version> <systemPath>${basedir}\
<dependency>
<groupId>XXX</groupId>
<artifactId>YYY</artifactId>
<scope>system</scope>
<version>8.1</version>
<systemPath>${basedir}\src\lib\YYY.jar</systemPath>
</dependency>
<dependency>
<groupId>XXX</groupId>
<artifactId>YYY</artifactId>
<scope>system</scope>
<version>8.1</version>
<systemPath>${basedir}\src\lib\YYY.jar</systemPath>
</dependency>
XXX
. 但我想知道我是否能得到更好的/新的想法,因为这已经是5年前的讨论了
Maven版本:3.3.9我认为您不应该使用systemPath
相反,考虑将JAR安装到您的本地存储库中,如这里解释的:
Maven允许您通过手动调用以下命令在存储库中添加库:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
mvn安装:安装文件-Dfile=-DgroupId=-DartifactId=)或Artifactory()我认为您不应该使用systemPath
相反,考虑将JAR安装到您的本地存储库中,如这里解释的:
Maven允许您通过手动调用以下命令在存储库中添加库:
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
mvn安装:安装文件-Dfile=-DgroupId=-DartifactId=)或Artifactory()我建议使用诸如Nexus之类的Maven存储库管理器(无论如何出于几个原因推荐)并在那里托管第三方LIB,而不是某些VCS
一旦您上传了JAR,您就可以将其作为正常的依赖项引用。我建议使用诸如Nexus之类的Maven存储库管理器(无论如何出于几个原因推荐),并在那里托管您的第三方LIB,而不是某些VCS
一旦您上传了jar,您就可以将它们作为普通依赖项引用。要将它们作为系统范围处理,您需要将每个jar作为单独的依赖项添加
如果您预处理并组合这些jar(作为单个jar),并为它们提供另一个Maven GAV坐标,如“XXX:MY-SUPER-jar:1.0”,则可以指定为“single”jar。注意:我不推荐这种做法,因为这是一种不好的做法
正如Prim的回答所指出的,应该避免使用系统范围。只需设置一个本地存储库。要将它们作为系统范围处理,您需要将每个jar作为一个独立的依赖项添加
如果您预处理并组合这些jar(作为单个jar),并为它们提供另一个Maven GAV坐标,如“XXX:MY-SUPER-jar:1.0”,则可以指定为“single”jar。注意:我不推荐这种做法,因为这是一种不好的做法
正如Prim的回答所指出的,应该避免使用系统范围。只需设置一个本地存储库。我可以建议mvn安装(或mvn软件包)来更新maven repository Thank@uuiui的可能副本,上面提到的链接给了我一些想法,我可以建议mvn安装(或mvn软件包)来更新maven repository Thank@uuiui的可能副本,上面提到的链接给了我一些关于anks Puce的想法,但不幸的是我不能这么做,因为它不是一个开源SDKjars@sasikals26Maven Repository Manager(如Nexus)通常安装在您自己的服务器上,因此它们应该可以很好地托管非OS JAR。再次感谢,但是你能告诉我这些罐子是从哪里上传的吗。。在中央存储库中??否。它们安装在您自己的服务器上(或安装Nexus的任何位置)。谢谢Puce,但不幸的是,我不能这样做,因为它不是一个开源SDKjars@sasikals26Maven Repository Manager(如Nexus)通常安装在您自己的服务器上,因此它们应该可以很好地托管非OS JAR。再次感谢,但是您能告诉我这些JAR是从哪里上载的吗。。在中央存储库中??否。它们安装在您自己的服务器上(或安装Nexus的任何位置)。