2

我正在处理一个简单的项目,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 的任何建议?

谢谢你。

欧根。

4

6 回答 6

6

您是否尝试使用资源路径更新构建部分?

<build>
        <resources>
            <resource>
                <directory>src/main/webapp</directory>
           </resource>
        </resources>
</build>

编辑

正如已经说过的,遮荫的目的不是为了战包。

于 2012-05-04T14:49:56.517 回答
1

您需要将它放在 src/main/resources/webapp 中或明确指定适当的位置以便正确捕获它。烦人,但它有效。

对于那些问为什么做这种事情有意义的人,这是一个典型的 jar 设置,它带有像 Jetty 这样的嵌入式 Web 服务器。

于 2014-01-24T00:29:20.640 回答
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 放在任何地方,定义目标目录并将其包含在我的阴影 jar 中。

于 2017-08-10T09:17:20.747 回答
0

听起来您想将源打包到一个包中。存在一个maven-source-plugin它将创建一个包含源文件的 jar。此外,这通常在发布周期中完成。如前所述,maven-share-plugin 的意图是将 jar 文件打包在一起(它们的内容;关键字:ueberjar)。

于 2012-05-04T15:03:04.643 回答
0

我会使用战争插件http://maven.apache.org/plugins/maven-war-plugin/faq.html#attached创建一个 webapp 项目的 jar。你已经设置了<packaging>war</packaging>吗?

于 2012-05-04T15:13:28.883 回答
0

将 webapp 资源添加到 JAR 中有什么意义?这就像战争。

将您的包装类型更改为war,它将起作用。

于 2012-05-04T19:24:16.550 回答