Gradle: исключить файл из зависимости при публикации jar - PullRequest
0 голосов
/ 04 февраля 2020

Я использую maven-publish с Gradle для публикации sh библиотека JAR. Эта библиотека зависит от libtensorflow_jni.jar, которая содержит несколько больших двоичных файлов. Чтобы уменьшить размер библиотеки ниже предела третьей стороны, с которым я сталкиваюсь, я хотел бы исключить (ненужный) двоичный файл Windows dll из jar libtensorflow_jni при сборке моего общего пакета.

Существует ли какой-либо разумный способ исключить указанный файл c из зависимости при публикации?

1 Ответ

0 голосов
/ 07 февраля 2020

Я не мог найти чистый способ сделать это, поэтому я использовал хакерский скрипт оболочки:

set -ex

# remove unneeded large binaries from the deployed zip file to avoid going over Lambda limits

cd build/distributions/
unzip -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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...