Как установить манифест класса-класса в плагин 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>