Как установить манифест класса-класса в плагин maven shade?

Я использую теневой плагин, и все работает отлично, за исключением возможности установить Class-Path для манифеста через

 <transformer 
        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
        <mainClass>com.generic.App</mainClass>  
        <classPath>. ./config</classPath>                           
    </transformer>

Я получаю

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default)              on project SpringThing: Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:2.1:shade for parameter transformer: Cannot find setter, adder nor field in org.apache.maven.plugins.shade.resource.ManifestResourceTransformer for 'classPath' -> [Help 1]

Глядя на документ

http://maven.apache.org/plugins/maven-shade-plugin/apidocs/org/apache/maven/plugins/shade/resource/ManifestResourceTransformer.html

Должен ли быть синтаксический анализ любого действительного ресурса манифеста? Я пробовал clss-path Class-Path ClassPath ничего не работает...

Мне нужно, чтобы classpath устанавливал местоположение файлов свойств внешнего приложения.

Я использую теневой плагин вместо сборки из-за хорошо известной проблемы:

http://blog.idm.fr/2009/09/maven-assembly-plugin-and-spring-namespace-handlers.html

Я могу сделать это в сборке довольно легко, кстати: (и он работает)

 <manifestEntries>
  <Class-Path>. ./config</Class-Path>
 </manifestEntries>

Я не могу использовать oneJar-плагин через maven, потому что вы также не можете устанавливать манифестные записи. (Я не думаю?)

Любые идеи?

Ответы

Ответ 1

Попробуйте это, и он должен работать с maven-shade-plugin версии 2.1:

<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
 <manifestEntries>
  <Main-Class>your.main.class</Main-Class>
  <Class-Path>your/class/path/here</Class-Path>
 </manifestEntries>
</transformer>

Отметьте разницу в теге <Class-Path>, поскольку у вас есть <classPath>