簡體   English   中英

從pom.xml為現有Maven項目創建WAR文件

[英]Create WAR file from pom.xml for an existing Maven project

我正在創建一個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

編輯:

我正在使用tomcat app server。

如前所述,我的項目“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 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

來源: 標准目錄布局簡介

您使用的是哪個應用服務器? 大多數應用服務器已經擁有自己的maven插件,可以部署戰爭,所以你不必自己編寫: jboss-maven-plugintomcat-maven-plugin

您的文件夾結構也不符合maven標准 通常,如果您遵循標准並將存檔類型設置為war,則在包目標maven將自動在目標文件夾中為您生成戰爭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM