我的Eclipse工作区中有4个项目。它们都是4个Maven项目。名称为API
,Games
,Faction
,Board
。
API
用于所有其他maven项目(Games
,Faction
,Board
),它本身取决于我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
答案 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提供的依赖项。
您应该在compile
范围内声明它:
这是默认范围,如果未指定则使用。编译依赖项在项目的所有类路径中均可用。此外,这些依赖项会传播到相关项目中。