依赖项不应该指向项目目录中的文件

ill*_*ati 16 java maven

我事先查看了这个问题并看到了其他类似问题,但没有一个解决方案适合我.

我是Maven的一个完整的菜鸟,但我刚刚从GitHub导入了一个项目.现在我遇到了让依赖项工作的问题.当我清理它给我以下错误.

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further         details.
[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.walrusone.skywars:skywarsreloadedplugin-api:jar:API
[WARNING] 'dependencies.dependency.systemPath' for org.bukkit:bukkit:jar should not point at files within the project directory, ${project.basedir}/lib/bukkit-1.8.6-R0.1-SNAPSHOT.jar will be unresolvable by dependent projects @ line 19, column 19
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.walrusone.skywars:skywarsreloadedplugin-v1_7_R3:jar:v1_7_R3
[WARNING] 'dependencies.dependency.systemPath' for org.bukkit:craftbukkit:jar should not point at files within the project directory, ${project.basedir}/lib/craftbukkit-1.7.9-R0.2-SNAPSHOT.jar will be unresolvable by dependent projects @ line 19, column 19
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.walrusone.skywars:skywarsreloadedplugin-v1_7_R4:jar:v1_7_R4
[WARNING] 'dependencies.dependency.systemPath' for org.bukkit:craftbukkit:jar should not point at files within the project directory, ${project.basedir}/lib/craftbukkit-1.7.10-R0.1.jar will be unresolvable by dependent projects @ line 19, column 19
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.walrusone.skywars:skywarsreloadedplugin-v1_8_R1:jar:v1_8_R1
[WARNING] 'dependencies.dependency.systemPath' for org.bukkit:craftbukkit:jar should not point at files within the project directory, ${project.basedir}/lib/craftbukkit-1.8.jar will be unresolvable by dependent projects @ line 19, column 19
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.walrusone.skywars:skywarsreloadedplugin-v1_8_R2:jar:v1_8_R2
[WARNING] 'dependencies.dependency.systemPath' for org.bukkit:craftbukkit:jar should not point at files within the project directory, ${project.basedir}/lib/craftbukkit-1.8.3.jar will be unresolvable by dependent projects @ line 19, column 19
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.walrusone.skywars:skywarsreloadedplugin-v1_8_R3:jar:v1_8_R3
[WARNING] 'dependencies.dependency.systemPath' for org.bukkit:craftbukkit:jar should not point at files within the project directory, ${project.basedir}/lib/craftbukkit-1.8.4.jar will be unresolvable by dependent projects @ line 19, column 19
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.walrusone.skywars:SkyWarsReloadedPlugin:jar:V2.8
[WARNING] 'dependencies.dependency.systemPath' for org.bukkit:bukkit:jar should not point at files within the project directory, ${project.basedir}/lib/craftbukkit-1.8.4.jar will be unresolvable by dependent projects @ line 72, column 25
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
Run Code Online (Sandbox Code Playgroud)

我相信这与原来的错误不同,它告诉我它找不到它,所以我继续下载所有.jar文件并将它放在正确的位置.现在我不知道该怎么做.

我遇到的另一个问题是每当我尝试编辑或添加一个类时,它就不像普通的jar文件那样.当我输入Main时,我不能像Main.instance.stacticMethod()那样.它只是坐在那里.

如果您需要任何其他文件,请告诉我.

如果有人知道任何关于maven的好教程视频

hfh*_*hc2 11

maven的意思是你不应该下载依赖项.只需克隆项目.您应该pom.xml在根目录中看到一个文件.然后输入

mvn compile
Run Code Online (Sandbox Code Playgroud)

这应该编译软件并下载进度中的依赖项.依赖项不存储在项目文件夹中,它们~/.m2/...使用默认配置放入.

编辑:警告似乎是由项目的维护者不正确理解maven引起的问题.他们似乎已经为项目添加了jar而不是依赖项.

接下来编辑:比如考虑文件pom.xmlv1_8_R3模块:它链接到基本目录罐子:

<dependency>
  <groupId>org.bukkit</groupId>
  <artifactId>craftbukkit</artifactId>
  <version>1.8.4-R0.1-SNAPSHOT</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/lib/craftbukkit-1.8.4.jar</systemPath>
  <type>jar</type>
  <optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)

通常不鼓励使用系统路径.在正确的方式是一直在为开发者出货罐子作为一个单独的神器.请参阅此问题和相关答案

  • 它实际上是`.m2`,而不是`.m2e` :) (2认同)
  • 虽然您不希望安装任何库,但由于可用性,您可能不得不这样做。我在 Spring、Lombok 和 Java 10 中发生了这种情况。仍在寻找解决此问题的方法... (2认同)