我正在使用一个简单的项目,标准位置的webapp目录(src / main / webapp)。出于某种原因,看起来maven-shade-plugin在最终生成的jar中不包含它 - 默认情况下它只包含工件src / main / resources。 我试图使用以下配置,没有运气:
<configuration>
<artifactSet>
<includes>
<include>*</include>
<include>*:*</include>
</includes>
</artifactSet>
</configuration>
关于如何在不必将src / main / webapp移动到src / main / resources / webapp的情况下做任何建议?
谢谢。
尤金。
答案 0 :(得分:6)
您是否尝试使用资源路径更新构建部分?
<build>
<resources>
<resource>
<directory>src/main/webapp</directory>
</resource>
</resources>
</build>
编辑
正如已经说过的,阴影目的不是战争包裹。
答案 1 :(得分:1)
您需要将其放在src / main / resources / webapp中,或明确指定适当的位置以使其正确捕获。很烦人,但它确实有效。
对于那些为什么这样做有意义的人来说,这是一个带有嵌入式Web服务器的jar的典型设置,如Jetty。
答案 2 :(得分:1)
我使用资源插件将webapp移动到classes文件夹。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>compile</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/webapp</outputDirectory>
<resources>
<resource>
<directory>src/webapp/dist</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
这样我可以将文件夹与我的webapp放在任何地方,定义目标目录,它包含在我的阴影罐中。
答案 3 :(得分:0)
听起来你想把资源打包成一个包。存在maven-source-plugin将创建包含源文件的jar。此外,这通常在发布周期中完成。如前所述,maven-share-plugin的目的是将jar文件打包在一起(其内容;关键字:ueberjar)。
答案 4 :(得分:0)
我会使用war插件http://maven.apache.org/plugins/maven-war-plugin/faq.html#attached来创建一个webapp项目的jar。您已设置<packaging>war</packaging>
?
答案 5 :(得分:0)
将您的webapp资源添加到JAR中有什么意义?这就像WAR一样。
将您的打包类型更改为war
,它会起作用。