我正在创建一个应用程序,它可以在一些众所周知的文档格式(.docx,.odt,.txt等)上创建Lucence索引。
Tika是提取文本的理想选择,但它似乎是让我的胖罐气球达到62 MB的罪魁祸首。
要制作胖罐,我在build.gradle中执行此操作:
buildscript {
repositories { jcenter() }
dependencies { // fatjar
classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.4' }
}
apply plugin: 'com.github.johnrengelman.shadow'
shadowJar {
baseName = project.name
classifier = null
version = project.version
}
task copyJarToBin(type: Copy) {
from shadowJar
into "D:/My Documents/Software projects/Operative/" + project.name
}
当我去gradle dependencies
时,Tika确实看起来有数百......其中大部分显然我不需要。
是否有已知的Gradle方法排除/过滤掉某些依赖项?
特定于Tika:如果有人知道如何识别哪些依赖项处理哪种文件类型,那么这也非常有用......
答案 0 :(得分:1)
看看Gradle dependency management。您可以按模块,组或两者排除依赖项:
compile('library:with-a-lot-of-deps:1.0') {
exclude module: 'weird-extension'
exclude group: 'microsoft-extensions'
exclude group: 'adobe-extensions', module: 'pdf-extension'
}
您还可以从所有配置中删除依赖项:
configurations {
all*.exclude group: 'all-the-unneeded-extensions'
}
不知道Tika,但无论如何这可能是一个单独的问题。阅读Tika文档并检查Jars中的META-INF
目录可能是一个好主意。