maven-shade-plugin - 在 org.apache.maven.plugins.shade.resource.ServicesResourceTransformer 类中找不到 'manifestEntries'

标签 maven-shade-plugin

我正在尝试创建一个 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/

相关文章:

java - 带有 Jetty 和 Maven Shade 插件的 Manifest 主要属性的无效签名文件摘要

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

maven - 使用maven-shade-plugin时出现依赖冲突怎么办?

java - 在 Jar 中使用第 3 方依赖项运行映射缩减作业

java - 在 maven 中使用/导入本地 fat jar 作为插件

java - 如何将 tools.jar 包含到 uberjar 中(使用 maven-shade-plugin)?

Java子模块创建阴影jar时出错

java - 您如何使用 Maven 阴影插件仅包含范围为 "provided"的依赖项中的特定类?

java - 从生成的 jar 文件中排除 META-INF/maven 文件夹

java - 是否可以隐藏依赖项?