情况与 this SO question 中的情况大致相似除了我试图指向的资源位于项目文件夹之外。
背景是我有一个包含一些项目的 git 存储库。其中一个项目需要另一个项目的 jar 才能运行,因此预期的依赖关系应该如下所示:
<dependency>
<groupId>another-proj-jar</groupId>
<artifactId>another-proj-jar</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>../another-proj/build/another-proj.jar</systemPath>
</dependency>
another-proj
不是 Maven 项目(将其转换为 Maven proj 本身就是一个问题,我们在这里跳过它),因此我通过 Eclipse 导入手动创建该 jar。
但是,我不确定是否可以指示项目目录之外的相对路径,因为所有示例都指向 //${basedir}/my-repo
其中 ${ basedir}
本质上是当前项目文件夹。我需要将其设置为当前项目文件夹的上一级。
您能告诉我这是否可能以及如何或可以采取什么解决方法吗?
最佳答案
实际上,这应该只是一个正常的依赖关系。在您依赖的项目(示例中的另一个项目)中运行 mvn clean install
。这会将 .jar 文件复制到您的 ~/.m2/repository
目录。然后在需要库的项目中具有如下依赖项:
<dependency>
<groupId>another-proj-jar</groupId>
<artifactId>another-proj-jar</artifactId>
<version>1.0-SNAPSHOT</version> <!-- or whatever it is set to -->
</dependency>
这样做的巨大优势是,如果您要拉入的 jar 需要其他任何东西,那么它也会被拉入。
关于java - Maven:通过项目目录外的相对路径向jar添加依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45443058/