Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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 Gradle,Tika-排除某些依赖项包;“肥罐”;太胖_Java_Gradle_Executable Jar_Apache Tika_Build Dependencies - Fatal编程技术网

Java Gradle,Tika-排除某些依赖项包;“肥罐”;太胖

Java Gradle,Tika-排除某些依赖项包;“肥罐”;太胖,java,gradle,executable-jar,apache-tika,build-dependencies,Java,Gradle,Executable Jar,Apache Tika,Build Dependencies,我正在制作一个应用程序,它可以在一些著名的文档格式(.docx、.odt、.txt等)上创建Lucence索引 Tika是提取文本的理想选择,但它似乎是让我的胖罐子膨胀到62MB的罪魁祸首 要制作胖罐子,我在build.gradle中执行以下操作: buildscript { repositories { jcenter() } dependencies { // fatjar classpath 'com.github.jengelman.gradle.plug

我正在制作一个应用程序,它可以在一些著名的文档格式(.docx、.odt、.txt等)上创建Lucence索引

Tika是提取文本的理想选择,但它似乎是让我的胖罐子膨胀到62MB的罪魁祸首

要制作胖罐子,我在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确实看起来有数百个。。。其中大部分显然我不需要

是否有一种排除/过滤某些依赖项的已知渐变方法

特定于Tika:如果有人知道如何识别哪些依赖项处理哪些文件类型,那也会非常有用…

看看。您可以按模块、组或两者排除依赖项:

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文档并检查JAR中的
META-INF
目录可能是个好主意。

使用Tika 2.x分支可能是一个选项吗?x中的解析器模块比其他模块更具模块性。。。我在网站上看不到Tika 2:去年10月发布的最新稳定版本是1.14。不过,你似乎是一位知情人士:你能给我一个链接,或者告诉我这是怎么回事吗?目前还没有正式的Tika 2.x版本,因为还有一些其他的突破性的API更改需要进行。不过,解析器重构部分已经完成。有关详细信息和链接,请参阅,以获取构建您自己的2.x源代码OK,谢谢。您是否有任何提示或链接使我能够尝试根据我正在和不打算涉及的文件类型(我指的是Tika 1.x或Tika 2.x)确定哪些依赖项可以安全排除?请查看2中提供的解析器模块,它们通常都有合理的名称,并将它们与您想要的格式进行比较!