在 org.apache.maven.plugins.shade.resource.ServicesResourceTransformer 类中找不到“manifestEntries”

2023-12-23

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

并且清单条目未合并,并且 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 https://stackoverflow.com/a/56154292

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 org.apache.maven.plugins.shade.resource.ServicesResourceTransformer 类中找不到“manifestEntries” 的相关文章

随机推荐