2016-09-19 25 views
1

现在,这似乎很奇怪,它不应该发生。无论如何,让我解释发生了什么: 我正在做一个bukkit插件,这恰好需要数据库访问。为此,我使用HikariCP。我之前在几个项目中使用过它,我应该没有问题,但真正发生的奇怪事情。在将它作为依赖项添加到我的pom中并配置了阴影插件来遮挡它之后,我构建了该jar。我甚至通过使用Winrar来解压它的内容来检查它的内容,并且它看起来应该是这样。然而,只要我加载它,我得到了NoClassDefFound异常。如果这对你有帮助,我会在这里提供POM,但正如我所说,最终的瓶子看起来很好。另外,如果您不熟悉Bukkit以及它处理插件的方式,它非常简单。它基本上有一个文件夹放置你的罐子(插件)。然后它扫描它,然后加载插件的主类(它在jar中的yml文件中定义,并且必须扩展JavaPlugin),然后在主类中调用onEnable()方法。将HikariCP变成罐子将不起作用

编辑:忘了补充的POM,那就是:http://hastebin.com/rapijoyona.xml 另外,如果你需要的堆栈跟踪:http://hastebin.com/owazutekum.go

回答

1

您必须定义什么应该被遮蔽。

<execution>  
    <phase>package</phase> 
    <goals> 
     <goal>shade</goal> 
    </goals> 
    <configuration> 
     <shadedArtifactId>${project.artifactId}-${minecraft.version}</shadedArtifactId> 
     <shadedArtifactAttached>true</shadedArtifactAttached> 
     <shadedClassifierName>shaded</shadedClassifierName> 
     <minimizeJar>true</minimizeJar> 
     <!-- INCLUDE SHADE--> 
     <artifactSet>    
      <includes> 
       <include>groupId:artifactId</include> 
      </includes> 
     </artifactSet>   
    </configuration>   
</execution> 

是的,我看了你写的,但尝试一下,也许这工作得更好

+0

谢谢你,但我不能现在实际上验证。我完全不知道是什么导致了这种情况,但它显然是通过将HikariCP的版本更改为较旧的版本解决的(我不记得具体是哪一个)。奇怪的是,之后我尝试恢复到最新版本的hikari,它仍然有效,就好像什么都没发生过一样。从那时起,我无法重现这个问题,直到今天,我也不知道究竟是什么造成了这种情况。我只知道这让我很生气。 – dadus33