繁体   English   中英

Maven:如何为本地安装的依赖项指定“ systemPath”?

[英]maven: how to specify “systemPath” for dependencied installed locally?

我有一个myPackage Maven项目,已编译并安装到以下位置的本地Maven存储库中

~/.m2/repository/mygroup/myPackage/1.0-SNAPSHOT/myPackage-1.0-SNAPSHOT.jar

在另一个Maven项目中,我希望使用它,并在pom.xml中为其编写<dependency>部分。 但是我不知道如何为这个罐子写“ systemPath”:

  1. 我不能使用“〜”指定路径,因为“〜”是* nix shell扩展,java / maven无法识别它。

  2. 我不能像

     /home/myself/.m2/... 

    它不是便携式的。

  3. 我不能使用$ {project.basedir},因为这两个Maven项目位于不同的文件夹下。 但是我猜应该还有其他一些Maven环境变量可以指示“主目录”吗?

我要做的就是完成这个“ systemPath”。

---------------通过使用另一个项目作为依赖项解决的问题------------

<systemPath>${project.basedir}/../myPackage/pom.xml</systemPath>

这样可行!

当项目所依赖的库不在maven本地存储库中时,需要系统路径。

根据经验,这种方法实际上根本不是可移植的,对于实际项目应避免使用。

现在,在以下情况下,依赖项位于本地存储库中:

  • 通常是从某个远程存储库下载的

  • 您已经在本地安装了它(在这种情况下,它安装在本地存储库中,但可能不在队友存储库中)

为了将依赖项安装到本地仓库中,请考虑使用: mvn install:install-file +参数,如此处所述

但是从您的问题来看,文件似乎已经存在...无论如何,一旦文件在本地存储库中,您就可以定义一个“常规”依赖项(组,工件,版本),Maven会选择它,而无需在这种情况下,请摆弄系统路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM