我正在创建一个 Web 项目,有人告诉我它必须驻留在现有 Maven 项目的资源目录中
这是项目的结构
MavenProject
|-- src
| |-- main
| `-- resources
| `-- My-Web-Project
| |-- META-INF
| | `-- MANIFEST.MF
| |-- src
| | |-- classes
| | | |-- com
| | | | `-- example
| | | | `-- projects
| | | | `-- SampleAction.class
| `-- web
| |-- css
| |-- css
| |-- img
| |-- js
| |-- WEB-INF
| | `-- web.xml
| |-- index.jsp
| `-- secondary.jsp
|-- test
`-- pom.xml
正如您所看到的,MavenProject 已经有一个 pom.xml 文件。我希望能够使用当前的 pom.xml 部署我的 Web 项目 WAR。
我想知道是否可以这样做以及如何继续创建 Maven 插件。
我读了这篇文章,但我不知道它是否适用于我的情况http://maven.apache.org/plugins/maven-war-plugin/usage.html
EDIT:
我正在使用 tomcat 应用服务器。
如前所述,我的项目“My-Web-Project”应该位于“资源”下
阅读此文档,虽然不完整,但它是一个很好的入门工具。
当你无法使用约定时使用 Maven
示例配置(不建议)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<webResources>
<resource>
<!-- this is relative to the pom.xml directory -->
<directory>src/main/resources/My-Web-Project/web</directory>
</resource>
</webResources>
</configuration>
</plugin>
这还不完整,target
并且类不应位于源目录内。
Maven约定-推荐解决方案
有人告诉我它(Web 项目)必须驻留在现有 Maven 项目的资源目录中
这是错误的,Web 项目不应该在资源中创建!
阅读Maven 约定优于配置.
约定优于配置是一个简单的概念。系统、库和框架应该采用合理的默认值。在不需要不必要的配置的情况下,系统应该“正常工作”。
使用约定而不是配置。
正确的目录结构应该如下所示:
MavenProject
|-- src
| |-- main
| | `-- java
| | `-- com
| | `-- example
| | `-- projects
| | `-- SampleAction.java
| `-- resources
| | `-- META-INF
| | `-- MANIFEST.MF
| `-- webapp
| |-- css
| |-- img
| |-- js
| |-- WEB-INF
| | `-- web.xml
| |-- index.jsp
| `-- secondary.jsp
|-- test
|-- target // this is generated by maven!
| |-- classes
| | `-- com
| | `-- example
| | `-- projects
| | `-- SampleAction.class
`-- pom.xml
Source: 标准目录布局简介
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)