14

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

<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 ничего не работает ...

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

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

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

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

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

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

Любые идеи?

ответ

23

Попробуйте это, и он должен работать с Maven-тень-плагина версии 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> 

Mark разница в теге <Class-Path>, как вы были <classPath>

+0

Чтобы добавить этот ответ, я забыл поставить Class-Path в mainfestEntries, что было глупой ошибкой. Я хочу ответить на свой собственный вопрос раньше, но забыл! Спасибо за напоминание. – sloven

+0

@JamesRobinson, это также правильный ответ? : P – 0xbe5077ed

+0

Пробовал это в версии 2.3, не работает. :/ – Wrench