【发布时间】:2014-06-26 22:38:51
【问题描述】:
使用 maven-shade-plugin 我正在尝试创建一个项目文件结构如下:
问题是下面的pom配置没有创建WEB-INF目录。
<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>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<createDependencyReducedPom>true</createDependencyReducedPom>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.my.package.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
基本上我需要将我的 web.xml 文件、类和 lib 文件复制到项目根目录下名为 WEB-INF 的目录中。
更新:抱歉,我将错误的插件从我的 pom 复制到原始问题中!
更新: 如果我从 pom 声明中添加包装:<packaging>war</packaging> WEB-INF 文件结构按照 OQ 完成。但是,有了这个声明,com 目录现在不包含我的包,因此无法找到主类。
<packaging>war</packaging> 的样子:
它应该是什么样子:
【问题讨论】:
-
听起来你尝试创建一个 WAR 存档,为什么不使用 maven-war-plugin 来达到这个目的?
-
我尝试了 maven-war-plugin。我正在尝试使用主类创建一个可执行的战争。但是,主类不能在默认包中。它必须在声明的包中。
标签: java maven maven-shade-plugin