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

2023-12-14

我正在创建一个 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

  • 使用非标准目录布局的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(使用前将#替换为@)

从 pom.xml 为现有 Maven 项目创建 WAR 文件 的相关文章

随机推荐

  • 没有数据库的休眠搜索

    是否可以仅将 hibernate search 用于其注释 bean gt document document gt bean 映射 而不使用数据库 如果是这样 是否有任何在线示例基本上显示如何进行设置 我发现了以下内容 http mojo
  • 错误:找不到模块“eslint-config-flowtype”

    我正在尝试一起使用 Webpack ESLint 和 Flow 类型 但是 当我启动 webpack dev server 时 我收到以下错误消息 奇怪的是eslint config flowtype甚至不是 NPM 中的模块 以前有人遇到
  • 将哈希表值属性导出到 CSV 文件

    我正在运行Test AdfsServerHealth Ref 问题是 输出值之一 值名称Output 是一个数组 显示为System Collection Hashtable我正在尝试找到一种方法以简洁的 Excel 格式获取此内容 例如
  • Android:将 ListVIew 中的项目居中

    我刚刚开始学习Android 想到了一个简单的项目来帮助我学习 我在 LinearLayout 上使用 ListView 创建了一个简单的菜单 我想要做的是将 ListView 中的文本居中 并将 ListView 放在布局中居中 我尝试将
  • 使用 CSS 旋转内联元素

    我意识到已经有很多这样的问题了 但我似乎无法让它们为我工作 因为大多数解决方案都针对 第 n 个孩子 或 以我极其 新手 的技能 我只是不明白它是如何工作的 我正在尝试为一项任务制作一个 交易或不交易 游戏 我花了太多时间让它看起来不错 这
  • WPF控件创建过程的步骤

    我已经寻找这样的解释有一段时间了 但我还没有找到任何解释 问题是我想知道 Wpf 控件的初始化 创建过程的步骤 让我们看一个简单的按钮 我想知道当调用构造函数时发生了什么 何时将控件添加到视觉树 逻辑树 何时调用依赖属性值 何时调用Appl
  • Phonegap触摸事件

    我的问题是我想从首页 index html 播放音频 视频文件 它的工作原理是这样的 function setaudio aud prepend a href img src icons audio file png alt Audioda
  • 删除存储在数组中的特定类对象[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我的代码有问题 我想知道是否有人可以看一下 我创建了一
  • 如何为旧的 Angular 项目提供服务?

    我试图ng serve第三方框架中包含的 Angular 示例项目 从其示例项目来看 它需要 Angular v 4package json文件 我的全局 CLI 版本是 6 0 8 该项目不包括node modules文件夹也不是angu
  • 将 PList 中的数据获取到 UITableView 中?

    我想维护一个记录列表 对于每条记录 我都维护相同类型的数据 我想在两个不同的地方使用这些数据 UITableView从每条记录中获取 名称 值 UIViewController这需要所有数据在不同领域使用 我认为我应该使用 plist 来存
  • 删除值时输入掩码不起作用

    我构建了一个函数来在键入时屏蔽输入 它工作正常 但是当删除输入中的值时 屏蔽的行为很奇怪 function App const phone setPhone React useState function maskPhone target
  • 替换dom元素中的所有字符串

    我有一个像这样的 DOM table style display none tr td td tr table
  • 使用 matplotlib 颜色图进行颜色循环

    如果我通过以下方式创建颜色 import numpy as np from matplotlib import pyplot as plt n 6 color plt cm coolwarm np linspace 0 1 0 9 n co
  • 在双精度数组上使用 unordered_map

    我的主要数据对象是一个双精度数组 其长度取决于我的类的特定实例 我想构造一个非常简单的哈希表来存储 检索这些对象 并且我们可以假设这些数字是以没有数字错误的方式生成的 int main std tr1 unordered map
  • 使用 Java 原子类进行模块化增量

    令我惊讶的是 Java 的 AtomicInteger 和 AtomicLong 类没有模块化增量的方法 以便在达到限制后值回绕到零 我想我一定错过了一些明显的东西 最好的方法是什么 例如 我想在线程之间共享一个简单的 int 并且我希望每
  • 在javascript中获取primefaces widgetVar并更新它

    我有一个像这样的 primefaces 组件
  • 释放临时过期的配置

    抱歉我的英语不好 但我是意大利人 我必须发布一个只能在少数设备上运行的应用程序 当配置文件过期时我应该做什么 该应用程序会继续工作吗 还是我应该使用更新后的配置文件再次发布它 thx all 不 该应用程序在 mobileprovision
  • 将带有 NULL entres 的列表转换为 R 中的 data.frame

    我有一个名为z z lt list list a 1 b 2 list a 2 b 3 list a NULL b 4 我希望将其转换为带有相应的 data framea条目在data frame分配为NULL 这样做 do call rb
  • Unobtrusive Ajax 在将 jQuery 更新到 1.9.0 后停止工作

    我刚刚将 jQuery 和 jQuery UI 更新为 jquery 1 9 0 min js 和 jquery ui 1 9 2 min js 而且 我所有不显眼的 Ajax 调用 Ajax ActionLink Ajax BeginFo
  • 从 pom.xml 为现有 Maven 项目创建 WAR 文件

    我正在创建一个 Web 项目 有人告诉我它必须驻留在现有 Maven 项目的资源目录中 这是项目的结构 MavenProject src main resources My Web Project META INF MANIFEST MF