java - Maven:通过项目目录外的相对路径向jar添加依赖项

标签 java maven dependencies pom.xml

情况与 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/

相关文章:

dependencies - 有没有办法强制 conda install 安装软件包及其依赖项而不是给出错误

maven - Apache zeppelin 在 zeppelin-web 中使用 Bower 构建过程失败

java - 排除maven中的依赖

objective-c - 在 XCode 4 中添加依赖项目

java - 为什么此代码中需要 "finally" block

maven - 人工权限

android - 如何在android中延迟加载共享库

java - Android访问文件系统Nexus 7

带有按钮的 JavaFX.TitledPane

java - 编辑 jtable 时更改单元格上的字体