【问题标题】:maven webapp to place jsps in /WEB-INF/jspmaven webapp 将 jsps 放置在 /WEB-INF/jsp
【发布时间】:2010-12-24 19:03:42
【问题描述】:

我继承了一个使用 NetBean 内部 ant 构建的 webapp。

所有的jsp都驻留在:

WEB-INF/jsp

并且 web.xml 具有指向 /WEB-INF/jsp/somefile.jsp 的硬编码链接

如何使用 maven war 插件将 JSP 放置在那里,保持与当前结构的一致性?

我的 pom 当前显示:

<warSourceDirectory>${basedir}/web/WEB-INF</warSourceDirectory>

【问题讨论】:

    标签: java maven-2 web-applications


    【解决方案1】:

    什么问题?让我们看一个标准的战争项目结构:

    $ mvn 原型:创建 -DgroupId=com.mycompany.app \ > -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp ... $树我的网络应用程序/ 我的网络应用程序/ |-- pom.xml `--src `--主要 |-- 资源 `-- 网络应用 |-- 网络信息 | `-- web.xml `-- index.jsp 5个目录,3个文件

    无需配置任何东西,只需将您的 JSP 放在 src/main/webapp/WEB-INF/jsp 下即可。

    编辑:我不明白为什么您的 maven-war-plugin 配置中有以下行:

    <warSourceDirectory>${basedir}/web/WEB-INF</warSourceDirectory>
    

    预期的行为是什么?为什么不使用默认值${basedir}/src/main/webapp

    【讨论】:

    • Vous avez raison。我将我的 warsourcedir 更改为 ${basedir}/web 并且它可以工作。
    【解决方案2】:

    还要注意 src/main/resources 中的所有内容都将“在类路径上”,即,在构建战争时,它们都将复制到 my-webapp/WEB-INF/classes 中。所以这是放置配置文件的好地方,例如 log4j.xml / logback.xml,或者 Spring 的 applicationContext.xml 和 Spring 的其他配置文件,然后您可以使用 classpath:somefile.xml 轻松引用它们。

    这也很不错的是,您可以在 maven 中设置过滤器,以便在将文件放入 war 文件之前转换 src/resources 中的文件。

    因此,如果您在 src/main/webapp/WEB-INF 中有任何配置文件,除了 web.xml,请考虑将它们移动到 src/main/resources 目录。

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 1970-01-01
      • 2012-11-21
      • 2018-02-24
      • 1970-01-01
      • 2020-11-01
      • 2012-01-29
      • 2011-10-13
      • 2013-06-20
      相关资源
      最近更新 更多