我有一个myPackage maven项目,已编译并安装到下面的本地maven存储库中
~/.m2/repository/mygroup/myPackage/1.0-SNAPSHOT/myPackage-1.0-SNAPSHOT.jar
在另一个Maven项目中,我希望使用它,并在pom.xml中为其编写<dependency>
部分。但是我不知道如何为这个jar编写“ systemPath”:
我不能使用“〜”来指定路径,因为“〜”是* nix shell扩展,java / maven无法识别它。
我不能像
这样的硬编码/home/myself/.m2/...
它不是便携式的。
我不能使用$ {project.basedir},因为这两个Maven项目位于不同的文件夹下。但是我想应该还有其他一些Maven环境变量可以指示“主目录”?
我要做的就是完成这个“ systemPath”。
---------------通过使用另一个项目作为依赖项解决的问题------------
<systemPath>${project.basedir}/../myPackage/pom.xml</systemPath>
答案 0 :(得分:1)
当项目所依赖的库不在maven本地存储库中时,需要系统路径。
根据经验,这种方法实际上根本不是可移植的,在实际项目中应避免使用。
现在,如果存在以下情况,则依赖项位于本地存储库中:
(通常是从某个远程存储库下载的)
您已将其安装在本地(在这种情况下,它安装在本地存储库中,但可能不在您的队友存储库中)
为了将依赖项安装到本地仓库中,请考虑使用:mvn install:install-file
+写为here的参数
但是从您的问题来看,文件似乎已经存在...无论如何,一旦文件在本地存储库中,您就可以定义一个“常规”依赖项(组,工件,版本),Maven会选择它,在这种情况下,无需摆弄系统路径。