首页 > 解决方案 > 在使用 Java 动态 Web 项目时在 Maven-Shade 插件中定义 mainClass

问题描述

我在 Java 动态 Web 项目中使用 maven-shade-plugin。以下代码段显示了用法:

        <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>
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>${mainClass}</mainClass>
                            </transformer>
                        </transformers>
                        <createDependencyReducedPom>false</createDependencyReducedPom>
                        <finalName>${project.artifactId}</finalName>
                    </configuration>
                </execution>
            </executions>
            <configuration>
                <finalName>${project.artifactId}</finalName>
                <filters>
                    <filter>
                        <artifact>*:*</artifact>
                        <excludes>
                            <exclude>META-INF/*.SF</exclude>
                            <exclude>META-INF/*.DSA</exclude>
                            <exclude>META-INF/*.RSA</exclude>
                        </excludes>
                    </filter>
                </filters>
            </configuration>
        </plugin>

在 pom.xml 的属性部分中,我现在必须定义 mainClass:

    <properties>
        <mainClass>com.mycompany.ClassName</mainClass>
    </properties>

我必须在里面放什么类名才能摆脱“找不到清单属性”的消息。? 我知道它是一个网络项目,所以我没有一个包含主方法的类。webcontainer 源中应该有一个带有 main-Method 的类。有没有一种简单的方法可以找到这个类的名称?

非常感谢。

亚历克斯

标签: javamavenmaven-shade-plugin

解决方案


推荐阅读