Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么不是';运行shadowJar任务时,我的沙盒模块是否正确继承重新定位的包名?_Java_Gradle_Shadowjar_Gradle Shadow Plugin - Fatal编程技术网

Java 为什么不是';运行shadowJar任务时,我的沙盒模块是否正确继承重新定位的包名?

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

我正在开发一个图书馆。它在编译时下载二进制文件,重新定位它们,然后将它们加载到类路径中,而不是通常在中着色依赖项。但是,问题是,如果我重新定位运行时下载的JAR,我还需要重新定位库路径,以便将路径同步在一起

例如,如果我的一个依赖项是:
uk.co.caprica.vlcj
,并且我将特定的jar依赖项重新定位到了
com.github.pulsebeat2.vlcj
,那么我也需要将该重新定位到我自己的项目中

我尝试使用
shadowJar
任务

  • 我的父模块名为
    minecraftmedialibrary父模块
  • 我的主要API模块名为
    minecraftmedialibrary API
  • 我还有单独的模块,每个模块代表不同的抽象/实现
  • 我将把这些抽象和API结合在一起,形成一个
    minecraftmedialibrary
    模块
  • 对于测试,我将使用一个名为
    deluxemediaplugin
    的沙盒模块,它测试代码(并取决于模块
    minecraftmedialibrary
运行shadowJar时,我注意到
minecraftmedialibrary
的build文件夹中的
-all
jar具有正确的重新定位依赖项,所有包名都已正确更改。然而,对于我的
deluxemediaplugin
模块,当它使用该库时,导致大量未定义类的异常。更仔细地看一下沙盒jar,重新定位的路径似乎没有从库中携带出来(包名与原始的包名相同)。以下是一些显示问题的图像(来自JD-GUI):

是否有人知道一种可能的解决方案,允许重新定位的路径保留在库代码中,而不是保留原始路径