14

Tôi đang sử dụng plugin bóng mát và tất cả mọi thứ hoạt động tốt, ngoại trừ việc có thể để thiết lập lớp-Path cho manifest quaLàm thế nào để thiết lập đường dẫn lớp manifest trong plugin bóng maven?

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

tôi nhận được

[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] 

Nhìn vào doc

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

Bạn có thể phân tích cú pháp bất kỳ tài nguyên tệp kê khai hợp lệ nào không? Tôi đã thử clss-path Class-Path ClassPath không có gì hoạt động ...

Tôi cần classpath để đặt vị trí của các tệp thuộc tính ứng dụng bên ngoài.

Tôi đang sử dụng plugin của bóng thay vì lắp ráp vì một vấn đề nổi tiếng:

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

tôi có thể làm điều này trong lắp ráp khá dễ dàng bằng cách này: (và nó hoạt động)

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

Tôi không thể sử dụng plugin oneJar qua maven vì bạn cũng không thể đặt mục kê khai. (Tôi không nghĩ?)

Bất kỳ ý tưởng nào?

Trả lời

23

Hãy thử điều này và nó sẽ làm việc với phiên bản maven-bóng-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> 

Đánh dấu sự khác biệt trong thẻ <Class-Path> như bạn có <classPath>

+0

Để thêm vào câu trả lời này, tôi cũng quên đặt Class-Path trong mainfestEntries, đó là một sai lầm ngớ ngẩn. Có nghĩa là để trả lời q của riêng tôi sớm hơn, nhưng quên! Cảm ơn bạn đã nhắc nhở. – sloven

+0

@JamesRobinson, đó có phải là câu trả lời đúng không? : P – 0xbe5077ed

+0

Đã thử điều này trong phiên bản 2.3, không hoạt động. :/ – Wrench

Các vấn đề liên quan