Как установить manifest class-path в Maven Shade plugin?

Я использую Shade plugin, и все работает нормально, за исключением возможности установить 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]

глядя на doc

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

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

мне нужен путь к классам, чтобы установить местоположение внешних файлов свойств приложения.

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

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>