Тика Парсер как зависимость во время выполнения в gradle jar - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть проект 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());
                }

1 Ответ

0 голосов
/ 05 февраля 2019

Использование теневого плагина для сборки моей банки решило проблему

...