从pom.xml为现有Maven项目创建WAR文件

loc*_*cto 4 java pom.xml maven

我正在创建一个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
Run Code Online (Sandbox Code Playgroud)

如您所见,MavenProject已有一个pom.xml文件.我希望能够使用当前的pom.xml部署我的Web项目WAR.

我想知道是否可以这样做,我将如何继续创建Maven插件.

我读过这篇文章,但我不知道它是否适用于我的情况 http://maven.apache.org/plugins/maven-war-plugin/usage.html

编辑:

我正在使用tomcat app server.

如前所述,我的项目"My-Web-Project"应该在"资源"之下

Mar*_*szS 7

阅读本文档,不完整,但它是一个很好的入门者.

无法使用约定时使用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>
Run Code Online (Sandbox Code Playgroud)

这不完整,target类不应位于源目录中.


Maven惯例 - 推荐的解决方案

我被告知它(web项目)必须驻留在现有maven项目的资源目录中

这是错误的,不应该在资源内部创建Web项目!

阅读Maven Convention over Configuration.

约定优于配置是一个简单的概念.系统,库和框架应该采用合理的默认值.不需要不必要的配置,系统应该"正常工作".

使用约定而不是配置.

正确的目录结构应如下所示:

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
Run Code Online (Sandbox Code Playgroud)

来源:标准目录布局简介