【问题标题】:maven shade not creating fat jar with manifestmaven shade没有用manifest创建胖罐
【发布时间】:2019-05-28 14:57:57
【问题描述】:

我正在使用 maven 3.6.1 和 maven shade 插件 2.3。我已经复制了下面 pom 文件的阴影插件部分。创建 jar 时会创建清单,但它不引用主类。我正在使用 mvn package 命令创建 jar。有关如何解决此问题的任何想法?

        <plugin>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <createDependencyReducedPom>true</createDependencyReducedPom>
                <transformers>
                    <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                    <transformer
                            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>com.abc.someclass</mainClass>
                    </transformer>
                </transformers>
                <!-- exclude signed Manifests -->
                <filters>
                    <filter>
                        <artifact>*:*</artifact>
                        <excludes>
                            <exclude>META-INF/*.SF</exclude>
                            <exclude>META-INF/*.DSA</exclude>
                            <exclude>META-INF/*.RSA</exclude>
                        </excludes>
                    </filter>
                </filters>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

【问题讨论】:

  • 你在哪里找到pluginManagement里面的插件配置?
  • 我从 pluginManagement 部分中删除了它,现在可以在不指定 shade 的情况下运行

标签: java maven


【解决方案1】:

我必须按如下方式运行打包命令(即以阴影为目标):

mvn clean package shade:shade

从 pluginManagement 中删除插件允许我使用以下内容创建阴影 jar:

mvn clean package

【讨论】:

    【解决方案2】:

    除了更新的命令行,我还必须添加一个&lt;manifestEntries&gt; 部分,如下所示:

        <artifactId>maven-shade-plugin</artifactId>
        <version>3.2.3</version>
        <configuration>
            <shadedArtifactAttached>false</shadedArtifactAttached>
            <transformers>
                <transformer
                    implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                    <mainClass>org.foo.bar.Main</mainClass>
                    <manifestEntries>
                        <Main-Class>org.foo.bar.Main</Main-Class>
                    </manifestEntries>
                </transformer>
        ...
    

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 1970-01-01
      • 2021-08-10
      • 2016-04-14
      • 1970-01-01
      • 2015-10-14
      • 2016-12-11
      相关资源
      最近更新 更多