2015-07-23 5 views
1

Я пытаюсь использовать Maven Shade и обернуть банку ElasticSearch.Maven Shade - измените название файла и замените текст

Причина, по которой я это делаю, потому что у меня конфликт между версией Lucene в моем проекте.

Но я нашел проблему, когда использую Shade. Он не меняет имя файла в META-INF/services, а также не изменяет FQN в этих конкретных файлах.

Мне нужно изменить org.apache.lucene.codecs.Codec файл и его содержание. Потому что, если этот файл сохранить свое имя, то я получаю ошибку
"Caused by: java.lang.IllegalArgumentException: An SPI class of type shaded_lucene_4_10_4.org.apache.lucene.codecs.Codec with name 'Lucene410' does not exist. You need to add the corresponding JAR file supporting this SPI to your classpath. The current classpath supports the following names: []"

Можно обернуть ElasticSearch с Maven Shade плагин?

Here is my pom.xml

ответ

3

Да, это возможно, просто нужно добавить запись ServicesResourceTransformer. Как это:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-shade-plugin</artifactId> 
    <version>2.4.1</version> 
    <executions> 
     <execution> 
     <phase>package</phase> 
     <goals> 
      <goal>shade</goal> 
     </goals> 
     <configuration> 
      <transformers> 
      <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
       <mainClass>org.myorg.esclient.App</mainClass> 
      </transformer> 
      <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/> 
      </transformers> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

Проверил: http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#ServicesResourceTransformer

+0

Я не думаю, что ServicesResourceTransformer переименовывает файлы услуг, это только переименовал имена классов внутри файлов. Это не подходит для Люцен. Для этого есть некоторые файлы с ошибками, но похоже, что он включен только в версию 3.0.0 плагина maven shade. См. Https://issues.apache.org/jira/browse/MSHADE-221 – Tor