Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven外部依赖_Java_Maven - Fatal编程技术网

Java Maven外部依赖

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}\

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

但是,我已经实现了以下目标:

<dependency>
<groupId>XXX</groupId>
<artifactId>YYY</artifactId>
<scope>system</scope>
<version>8.1</version>
<systemPath>${basedir}\src\lib\YYY.jar</systemPath>
</dependency>
  • 在我的项目路径(\src\lib)中添加了JAR
  • 将pom更改如下:

    <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的任何位置)。