maven如何从外部文件夹java复制依赖项
如何从同一jar目录(不是build目录)中的/lib文件夹复制依赖项,我使用的是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>../lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
我被发现了
java.lang.NoClassDefFoundError: it/unimi/dsi/fastutil/objects/Object2ObjectLinkedOpenHashMap
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[patched.jar:git-PaperSpigot-"4c7641d"]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:331) ~[patched.jar:git-PaperSpigot-"4c7641d"]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:254) [patched.jar:git-PaperSpigot-"4c7641d"]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:293) [patched.jar:git-PaperSpigot-"4c7641d"]
at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:202) [patched.jar:git-PaperSpigot-"4c7641d"]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:563) [patched.jar:git-PaperSpigot-"4c7641d"]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_281]
Caused by: java.lang.NoClassDefFoundError: it/unimi/dsi/fastutil/objects/Object2ObjectLinkedOpenHashMap
# 1 楼答案
有多种方法可以将本地jar文件添加到Maven项目中,如下所示:
一,。直接将依赖项添加为系统范围:
假设罐子位于<;项目根文件夹>/在pom中添加依赖项。xml:
二,。将JAR安装到本地Maven存储库中
例如:
接下来,将依赖项添加到Maven项目中:
# 2 楼答案
如果我现在理解为OK,那么当您尝试执行生成的jar时,会抛出该异常。如果是这样的话,maven依赖插件看起来很好,但您可能没有将lib文件夹名称添加到生成的jar的类路径中:
${jar.name}和${project.version}是之前定义的变量,可以用jar所需的名称替换。还有com。实例主要的MainClass只是一个必须用Main类替换的示例