【问题标题】:Why doesn't maven include the JSP files in my jar?为什么 maven 不在我的 jar 中包含 JSP 文件?
【发布时间】:2013-03-18 10:47:54
【问题描述】:

我有一个嵌入式码头(8.1.8 版)网络应用程序,我将其打包为 jar,并使用 JSP 作为其前端。它是用 Maven 版本 3.0.3 构建的。问题是当我这样做时:mvn package 它包括除了我的 *.jsp 文件之外的所有内容。我尝试将它们迁移到许多不同的地方,但没有成功。

我尝试将 <include>src/main/java/**/*.jsp</include> 添加到我的 pom.xml 的 maven-compiler-plugin 部分。但这也没有效果。

有没有办法确定 jsp 文件被包含在内?

【问题讨论】:

  • 你是用maven jar plugin还是maven war plugin创建jar文件?
  • 我正在使用maven-jar-plugin

标签: java jsp maven web-applications jetty


【解决方案1】:

我的解决方案是将jsp文件添加到src/main/webapp并在pom文件中添加以下sn-p:

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

【讨论】:

  • 我发现这会消除常规资源包含,除非您也为此执行第二个 &lt;resource&gt; 块。
  • @end-user ... 后面的resource 块表示这只是一个附加资源,而不是替换任何现有资源。但是,我在资源块之前添加了另一组省略号,希望能更清楚地说明这一点。
  • 不,我理解省略号的意思是表示可能存在其他元素。我的建议是(我相信)Maven 的默认行为,没有指定&lt;resources&gt; 块,是包含src/main/resources 中的任何内容。但是,如果您将其定向到 webapp,它会覆盖默认值,要求您同时指定两者(如果您需要两者)。
【解决方案2】:

尝试将 .jsp 放到 src/main/resources 中,Maven 会忽略 src/main/java 中除 .java 之外的所有文件

【讨论】:

  • 嗯,刚试过。似乎也没有将 src/main/resources 目录添加到 jar 中。我正在使用 jar 命令检查内容
  • 使用$ mvn clean package 创建jar 文件,然后测试其内容。您配置的插件之一导致您看到的问题。从没有&lt;plugins&gt; 开始,然后重新添加每个插件,直到它再次中断。然后修复该特定插件的配置。
  • 所以为了让 src/main/resources 文件夹显示在我的 jar 中,我实际上必须将该文件夹添加到 pom 中,如下所示:&lt;build&gt;&lt;resources&gt;&lt;resource&gt;src/main/resources&lt;/resource&gt;&lt;/resources&gt;...&lt;/build&gt;
  • src/main/resources 是默认值。进入 jar 的不是目录本身,而是它的内容。如果您将 1.jsp 放在 src/main/resources 中,您将在 jar 根目录中获得 1.jsp
猜你喜欢
  • 2015-11-16
  • 1970-01-01
  • 2019-06-25
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 2019-08-26
  • 2023-02-12
  • 1970-01-01
相关资源
最近更新 更多