Gradle:发布jar时从依赖项中排除文件

Gradle:发布jar时从依赖项中排除文件,gradle,Gradle,我正在使用maven publish和gradle一起发布一个库jar。该库依赖于libtensorflow_jni.jar,其中包含几个大型二进制文件。为了将库的大小减少到我遇到的第三方限制以下,在构建整个包时,我想从libtensorflow_jni jar中排除(不需要的)Windows dll二进制文件 发布时,是否有合理的方法将特定文件从依赖项中排除?我找不到一种干净的方法来实现这一点,因此我使用了一个黑壳脚本: set-ex #从部署的zip文件中删除不需要的大型二进制文件,以避免超

我正在使用
maven publish
和gradle一起发布一个库jar。该库依赖于
libtensorflow_jni.jar
,其中包含几个大型二进制文件。为了将库的大小减少到我遇到的第三方限制以下,在构建整个包时,我想从libtensorflow_jni jar中排除(不需要的)Windows dll二进制文件


发布时,是否有合理的方法将特定文件从依赖项中排除?

我找不到一种干净的方法来实现这一点,因此我使用了一个黑壳脚本:

set-ex
#从部署的zip文件中删除不需要的大型二进制文件,以避免超出Lambda限制
光盘制作/发行/
解压-o app.zip
rm app.zip
zip-d lib/libtensorflow_jni-*.jar org/tensorflow/native/windows-x86_64/tensorflow_jni.dll
zip-d lib/libtensorflow_jni-*.jar org/tensorflow/native/darwin-x86_64/libtensorflow_jni.dylib
zip-r app.zip。
并在
build.gradle
中从任务调用此脚本,如下所示:

task shrinkAppJar(type: Exec) {
    commandLine './shrink-jar.sh'
}

build.dependsOn buildZip, shrinkAppJar