【问题标题】:How to set manifest class-path in maven shade plugin?如何在 Maven 阴影插件中设置清单类路径?
【发布时间】:2013-06-19 00:57:07
【问题描述】:

我正在使用 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 没用...

我需要类路径来设置外部应用程序属性文件的位置。

由于一个众所周知的问题,我正在使用 shade 插件而不是程序集:

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

顺便说一句,我可以很容易地在汇编中做到这一点:(并且有效)

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

我不能通过 maven 使用 oneJar 插件,因为你也不能设置清单条目。 (我不认为?)

有什么想法吗?

【问题讨论】:

    标签: maven classpath manifest maven-assembly-plugin maven-shade-plugin


    【解决方案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>
    

    标记&lt;Class-Path&gt;&lt;classPath&gt; 的区别

    【讨论】:

    • 为了补充这个答案,我还忘记将 Class-Path 放在 mainfestEntries 中,这是一个愚蠢的错误。本来想早点回答我自己的问题,但忘记了!谢谢提醒。
    • 它对我也不起作用。我得到了... [警告] org.apache.maven.plugins.shade.resource.ManifestResourceTransformer 类中的映射将值类型声明为:类 java.util.jar.Attributes 但在运行时看到:类 java.lang.String [错误] 无法在项目 eigor-cli 上执行目标 org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default): Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin :2.1:参数资源的阴影:在类 org.apache.maven.plugins.shade.resource.ManifestResourceTransformer 中找不到“资源”-> [帮助 1]
    猜你喜欢
    • 2015-08-27
    • 2012-03-03
    • 2019-12-22
    • 2012-03-06
    • 2015-07-29
    • 1970-01-01
    • 2015-05-17
    • 2023-03-04
    • 2014-01-28
    相关资源
    最近更新 更多