Java 为什么不是';运行shadowJar任务时,我的沙盒模块是否正确继承重新定位的包名?
我正在开发一个图书馆。它在编译时下载二进制文件,重新定位它们,然后将它们加载到类路径中,而不是通常在中着色依赖项。但是,问题是,如果我重新定位运行时下载的JAR,我还需要重新定位库路径,以便将路径同步在一起 例如,如果我的一个依赖项是:Java 为什么不是';运行shadowJar任务时,我的沙盒模块是否正确继承重新定位的包名?,java,gradle,shadowjar,gradle-shadow-plugin,Java,Gradle,Shadowjar,Gradle Shadow Plugin,我正在开发一个图书馆。它在编译时下载二进制文件,重新定位它们,然后将它们加载到类路径中,而不是通常在中着色依赖项。但是,问题是,如果我重新定位运行时下载的JAR,我还需要重新定位库路径,以便将路径同步在一起 例如,如果我的一个依赖项是:uk.co.caprica.vlcj,并且我将特定的jar依赖项重新定位到了com.github.pulsebeat2.vlcj,那么我也需要将该重新定位到我自己的项目中 我尝试使用shadowJar任务 我的父模块名为minecraftmedialibrary
uk.co.caprica.vlcj
,并且我将特定的jar依赖项重新定位到了com.github.pulsebeat2.vlcj
,那么我也需要将该重新定位到我自己的项目中
我尝试使用shadowJar
任务
- 我的父模块名为
minecraftmedialibrary父模块
- 我的主要API模块名为
minecraftmedialibrary API
- 我还有单独的模块,每个模块代表不同的抽象/实现
- 我将把这些抽象和API结合在一起,形成一个
模块minecraftmedialibrary
- 对于测试,我将使用一个名为
的沙盒模块,它测试代码(并取决于模块deluxemediaplugin
)minecraftmedialibrary
minecraftmedialibrary
的build文件夹中的-all
jar具有正确的重新定位依赖项,所有包名都已正确更改。然而,对于我的deluxemediaplugin
模块,当它使用该库时,导致大量未定义类的异常。更仔细地看一下沙盒jar,重新定位的路径似乎没有从库中携带出来(包名与原始的包名相同)。以下是一些显示问题的图像(来自JD-GUI):
是否有人知道一种可能的解决方案,允许重新定位的路径保留在库代码中,而不是保留原始路径