Maven依赖怪异的bug

时间:2019-01-14 23:31:10

标签: java maven

我的Eclipse工作区中有4个项目。它们都是4个Maven项目。名称为APIGamesFactionBoard

API用于所有其他maven项目(GamesFactionBoard),它本身取决于我PC上的jar以及HikariCP。

我在我的API pom.xml中声明了这种依赖关系

<dependency>
  <groupId>org.github.paperspigot</groupId>
  <artifactId>paperspigot-api</artifactId>
  <version>1.7.10-R0.1-SNAPSHOT</version>
  <scope>system</scope>
  <systemPath>${basedir}\lib\paperspigot-1.7.10-R0.1-SNAPSHOT.jar</systemPath>
</dependency>

<dependency>
  <groupId>com.zaxxer</groupId>
  <artifactId>HikariCP</artifactId>
  <version>2.7.8</version>
  <scope>compile</scope>
</dependency>

然后,我在我的其他3个项目中声明它们所依赖的API

<dependency>
  <groupId>net.onima</groupId>
  <artifactId>onimaapi</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <scope>compile</scope>
</dependency>

但是我对API发出了严重警告,并且错误日志中显示了这样的信息:

我不明白为什么会出现此错误,因为我可以在类中使用API​​进行编码。有人可以解释我吗?谢谢

编辑:根据要求截屏的文本:
说明资源路径位置类型 项目'OnimaAPI'缺少必需的Java项目:'paperspigot'OnimaAPI生成路径生成路径问题


描述资源路径位置类型 项目'OnimaGames'缺少必需的Java项目:'onimaapi'OnimaGames生成路径生成路径问题

我不知道为什么不能在此处设置pom.xml,所以这里是一个链接:https://ghostbin.com/paste/r4u62

1 个答案:

答案 0 :(得分:1)

您要声明paperspigot范围为system

<dependency>
  <groupId>org.github.paperspigot</groupId>
  <artifactId>paperspigot-api</artifactId>
  <version>1.7.10-R0.1-SNAPSHOT</version>
  <scope>system</scope>
  <systemPath>${basedir}\lib\paperspigot-1.7.10-R0.1-SNAPSHOT.jar</systemPath>
</dependency>
  

与作用域系统的依赖关系始终可用,不会在存储库中查找。它们通常用于告知Maven JDK或VM提供的依赖项。

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#System_Dependencies

您应该在compile范围内声明它:

  

这是默认范围,如果未指定则使用。编译依赖项在项目的所有类路径中均可用。此外,这些依赖项会传播到相关项目中。