之前文章介绍了如何编译Sonatype Nexus源代码,当时的最新版本还是2.3.1,但是这几天更新了2.3.2以及2.4.x以后,发现编译源代码时,nexus-client-core模块竟然报错:
[ERROR] /D:/Workspaces/nexus0320/nexus/nexus/nexus-client-core/src/main/java/org/sonatype/nexus/client/internal/rest/jersey/subsystem/repository/Jerse
yRepositories.java:[87,35] D:\Workspaces\nexus0320\nexus\nexus\nexus-client-core\src\main\java\org\sonatype\nexus\client\internal\rest\jersey\subsyste
m\repository\JerseyRepositories.java:87: 无法确定 <R>R 的类型参数;对于上限为 R,org.sonatype.nexus.client.core.subsystem.repository.Repository 的类型
变量 R,不存在唯一最大实例
具体错误见下图:
其实这里错误很简单,就是泛型没指定返回类型,解决方法也不难,按照错误提示,找到报错的JerseyRepositories.java文件,修改72行与87行的return convert(...)为return (R)convert(...),保存并重新编译即可。
注意:经我测试,这个错误其实并不影响最后结果的使用,我猜是以前编译成功的jar已经在本地库有备份(因为install命令会上传本地库),编译失败就会直接读取本地库的旧jar。但是如果编译错误,将会导致不能正常正常调试源代码,所以想debug的同学还是要解决一下这个错误。