Gradle,Tika - 排除一些依赖包制作一个"胖罐"太胖

时间:2017-02-19 21:28:00

标签: java gradle executable-jar apache-tika build-dependencies

我正在创建一个应用程序,它可以在一些众所周知的文档格式(.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:如果有人知道如何识别哪些依赖项处理哪种文件类型,那么这也非常有用......

1 个答案:

答案 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目录可能是一个好主意。