我正在尝试创建一个 FAT jar 并组合 vertx-config 和 vert-config-yaml JAR 文件中 META-INF/services/io.vertx.config.spi.ConfigProcessor 中的条目。我认为 ServicesResourceTransformer 不需要 mainfest 条目选项,但我遇到了错误:
Unable to parse configuration of mojo org.apache.maven.plugins:maven-shade-plugin:3.2.1:shade for parameter manifestEntries: Cannot find 'manifestEntries' in class org.apache.maven.plugins.shade.resource.ServicesResourceTransformer -> [Help 1]
一开始,我没有添加这一行
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
并且 list 条目未合并,并且 vert-config-yaml 中的类之一丢失。现在我添加如下行,然后看到错误。我正在使用 maven-shade-plugin 插件版本 3.2.1。我在这里做错了什么?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>${maven.shade.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/.SF</exclude>
<exclude>META-INF/.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>io.vertx.core.Launcher</Main-Class>
<Main-Verticle>${main.verticle}</Main-Verticle>
</manifestEntries>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/services/io.vertx.core.spi.VerticleFactory</resource>
</transformer>
</transformers>
<artifactSet>
</artifactSet>
<outputFile>${project.build.directory}/${project.artifactId}-${project.version}-fat.jar</outputFile>
</configuration>
</execution>
</executions>
</plugin>
最佳答案
尝试添加<id>
到你的执行:
<execution>
<id>shade-my-jar</id>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
解释(有点对称问题):https://stackoverflow.com/a/56154292
关于maven-shade-plugin - 在 org.apache.maven.plugins.shade.resource.ServicesResourceTransformer 类中找不到 'manifestEntries',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57564196/