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>
部分。但是我不知道如何为这个 jar 写 "systemPath":
我不能用“~”指定路径,因为“~”是*nix shell扩展,java/maven无法识别。
我不能像
那样硬编码
/home/myself/.m2/...
不可携带。
我不能使用 ${project.basedir} 因为这 2 个 Maven 项目在不同的文件夹下。但我想应该还有一些其他的 maven 环境变量可以指示 "home directory"?
我只想完成这个 "systemPath"。
----------------使用另一个项目作为依赖解决了问题------------
<systemPath>${project.basedir}/../myPackage/pom.xml</systemPath>
有效!
当你的项目依赖的库不在maven本地仓库中时,需要系统路径。
根据经验,这种方法确实不可移植,在实际项目中应该避免使用。
现在,依赖项在本地存储库中,如果:
它是从某个远程存储库下载的(通常)
您已在本地安装它(在本例中它在您的本地存储库中,但可能不在您的队友存储库中)
为了将依赖项安装到本地存储库中,请考虑使用:mvn install:install-file
+ 所写的参数 here
但是从你的问题来看,文件似乎已经存在了...无论如何,一旦文件在本地存储库中,你就可以定义一个 "regular" 依赖项(组、工件、版本)和 Maven将选择它,在这种情况下不需要 fiddle 与系统路径。
我有一个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} 因为这 2 个 Maven 项目在不同的文件夹下。但我想应该还有一些其他的 maven 环境变量可以指示 "home directory"?
我只想完成这个 "systemPath"。
----------------使用另一个项目作为依赖解决了问题------------
<systemPath>${project.basedir}/../myPackage/pom.xml</systemPath>
有效!
当你的项目依赖的库不在maven本地仓库中时,需要系统路径。
根据经验,这种方法确实不可移植,在实际项目中应该避免使用。
现在,依赖项在本地存储库中,如果:
它是从某个远程存储库下载的(通常)
您已在本地安装它(在本例中它在您的本地存储库中,但可能不在您的队友存储库中)
为了将依赖项安装到本地存储库中,请考虑使用:mvn install:install-file
+ 所写的参数 here
但是从你的问题来看,文件似乎已经存在了...无论如何,一旦文件在本地存储库中,你就可以定义一个 "regular" 依赖项(组、工件、版本)和 Maven将选择它,在这种情况下不需要 fiddle 与系统路径。