2014-09-19 7 views
1

Я пытаюсь использовать Maven Shade в первый раз и застрял. Я получаю сообщение об ошибке, которое говорит:Maven Shade Plugin: не удается создать экземпляр

 Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:2.3: 
    shade for parameter outputFile: Cannot create instance of interface org.apache.maven.plugins.shade.resource.ResourceTransformer: 
org.apache.maven.plugins.shade.resource.ResourceTransformer.<init>() -> [Help 1] 

Я добавил этот шаблон для pom.xml-расширений для использования Maven-Shade моей pom.xml и только что вошел главный-класс моего тестового проекта.

Я не знаком с maven и, в частности, с этим плагином - может ли кто-нибудь помочь в этом?

<build> 
<plugins> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-shade-plugin</artifactId> 
<version>2.3</version> 
<executions> 
    <execution> 
    <phase>package</phase> 
    <goals> 
    <goal>shade</goal> 
    </goals> 
    <configuration> 
    <transformers> 
    <!-- Set the main class of the executable JAR --> 
     <transformer 
     implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
     <mainClass>de.mavenShadeTest.MyMain</mainClass> 
     </transformer> 
    <!-- Merge the uimaFIT configuration files --> 
    <transformer 
    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
    <resource> 
    META-INF/org.apache.uima.fit/fsindexes.txt 
    </resource> 
    </transformer> 
    <transformer 
    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
    <resource> 
    META-INF/org.apache.uima.fit/types.txt 
    </resource> 
    </transformer> 
    <transformer 
    implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
    <resource> 
    META-INF/org.apache.uima.fit/typepriorities.txt 
    </resource> 
    </transformer> 
<!-- Prevent huge shaded artifacts from being deployed to a Maven 
repository (remove if not desired) --> 
<outputFile> 
${project.build.directory}/${artifactId}-${version}-standalone.jar 
</outputFile> 
</transformers> 
</configuration> 
</execution> 
</executions> 
</plugin> 
</plugins> 
</build> 

ответ

1

Вы добавили outputFile в transformers элемента, а не снаружи:

</transformer> 
<!-- Prevent huge shaded artifacts from being deployed to a Maven 
repository (remove if not desired) --> 
<outputFile> 
${project.build.directory}/${artifactId}-${version}-standalone.jar 
</outputFile> 
</transformers> 
</configuration> 

Переместить его снаружи, так что непосредственно под configuration:

</transformers> 
<outputFile> 
${project.build.directory}/${artifactId}-${version}-standalone.jar 
</outputFile> 
</configuration> 
Смежные вопросы