У меня есть проект gradle, где я использую AutoDetectParser от Tika для извлечения контента.Когда проект встроен в толстую флягу, AutoDetectParser возвращает пустую строку.Я вижу, это потому, что Parser не находится в пути к классам во время выполнения.Как добавить Parser в путь к классам среды выполнения?
Файл сборки Gradle:
dependencies {
compile 'org.apache.tika:tika-parsers:1.20'
testImplementation 'junit:junit:4.12'
}
jar {
manifest {
attributes (
'Main-Class': 'com.superna.tikatest.TikaTestApp'
)
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
} {
exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
}
}
Фрагмент кода:
Metadata metadata = new Metadata();
AutoDetectParser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler();
try(FileInputStream fis = new FileInputStream(localPath.toString());
BufferedInputStream bis = new BufferedInputStream(fis);
TikaInputStream stream = TikaInputStream.get(bis)) {
parser.parse(stream, handler, metadata);
System.out.println(handler.toString());
}