java - Maven阴影插件: Cannot create instance of

标签 java maven maven-shade-plugin

我第一次尝试使用 Maven Shade 但被卡住了。我收到一条错误消息,内容如下:

        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 扩展模板,以便在我的 pom.xml 中使用 Maven-Shade,并刚刚进入我的测试项目的主类。

我不熟悉 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>

最佳答案

您已在 transformers 元素内添加 outputFile,而不是外部:

</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>

关于java - Maven阴影插件: Cannot create instance of,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25936424/

相关文章:

java - 如何在多模块项目中配置 Maven shade 插件?

java - 如果几秒钟后仍未完成,则取消 firebase 上传

java - NoClassDefFoundError : DataAccessException using spring

java - 如何连续打印3个骰子?

java - Maven 项目在 IntelliJ 中构建得很好,但在 Maven 命令行中则不行

java - Maven - 如何使用注释从 src/test/java 内的不同包运行 2 个 java 文件

java - 使用 Maven Shade 插件的父子 Pom 布局

java - Maven shade - 使用自定义配置重新打包依赖 jar

java - 这是一个双向的一对多关系吗?

来自API的奇怪字符串的java char编码