maven webapp将jsps放在/ WEB-INF / jsp中

我inheritance了使用NetBean的内部ant构建的webapp。

所有jsps都位于:

WEB-INF/jsp 

web.xml包含指向/WEB-INF/jsp/somefile.jsp的硬编码链接

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

我的pom目前写道:

 ${basedir}/web/WEB-INF 

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

 $ mvn archetype:create -DgroupId = com.mycompany.app \
 > -DartifactId = my-webapp -DarchetypeArtifactId = maven-archetype-webapp
 ...
 $ tree my-webapp /
我-的webapp /
 |  -  pom.xml
 ` -  src
     ` - 主要
         |  - 资源
         ` -  webapp
             |  -  WEB-INF
             |  ` -  web.xml
             ` -  index.jsp

 5个目录,3个文件 

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

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

 ${basedir}/web/WEB-INF 

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

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

什么也使这个非常好,你可以在maven中设置filter,以便在将文件放入war文件之前从src / resources转换文件。

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