针对新手的Java EE7和Maven项目–第2部分–为我们的应用程序定义一场简单的战争...

从第一部分恢复

第1部分
我们刚刚定义了 pom。 一种特殊的pom类型,它最终定义了我们的应用程序将要使用的库。 它还配置了所有用于打包我们应用程序每个模块的Maven工具。 您可以在此处 签出 -1部分示例代码。

因此,到目前为止,在将要开发应用程序的目录中,只有一个名为sample-parent的文件夹,并且该目录中存放有pom.xml 。 我们的父母pom!

CapturFiles_1

正如我们在模块部分中所看到的,我们已经定义了应用程序的构建块

  • 样品耳
  • 样本网
  • 样品服务
  • 样本域

我们需要创建相关的Maven模块,并为每个模块添加特定的pom.xml文件。

定义战争模块

在sample-parent文件夹下,我们创建了一个名为sample-web的子文件夹,并且还添加了pom.xml文件。 (某些人在同一级别上执行此操作)。

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>gr.javapapo</groupId><artifactId>sample-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>sample-web</artifactId></project>

但是,这仅仅是什么,我们需要更具体地说明此pom将帮助我们构建什么,因此我们需要定义包装类型,模块名称(针对此战争)以及任何依赖项。

    ...<artifactId>sample-web</artifactId><packaging>war</packaging><build><finalName>${project.artifactId}</finalName></build><dependencies><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><scope>provided</scope></dependency></dependencies></project>

如果您使用的是支持Maven的IDE(例如Eclipse ),它将自动检测pom内容的更改,并会自动为您创建符合Maven War包装的文件夹。 它将为您创建以下结构。 当然,您可以自己做,但是很方便!

样本网

  • src
    • 主要
      • Java(在此处添加您的Java代码)
      • webapp(这是放置WEB-INF \ web.xml的位置)
      • 资源(资源,如属性)
    • 测试
      • Java
      • 资源

CapturFiles_2

在webapp子文件夹下,我已经预创建了\ WEB-INF \ web.xml文件。 我可以跳过这一部分,因为Maven插件可以为我们做这件事,但只是为了说明这种情况,在某些情况下您想自己创建和创建任何自定义条目

CapturFiles_3

如果您想知道如何“放入”一个空的Servlet 3.1 web.xml文件,请在此处查看 ,或下载此文章的代码。 我还在一个简单的包下的java子文件夹中添加了一个非常简单的Servlet,它将包含在我们的应用程序中。 只需几行代码。 同样,您可以在帖子末尾下载相关git(bitbucket)链接中的所有代码。

CapturFiles_6

因此,我们在war模块pom文件中仅添加了几行,然后在拥有IDE的情况下,该工具神奇地为我们创建了非常特定的文件夹布局。 我们已“遵循”此布局,并添加了一个非常简单的servlet java类和一个小的xml描述符。 这里的真正意义是什么?

好吧,关于Maven的好处是,我们的War模块需要构建的一些东西已经在“特殊”父pom中定义和配置了。 但是这些东西是什么,以及Maven将如何使用它? 正如我们已经阐述的那样,Maven完全是关于约定的。 您以“正确”的方式放置正确的事物,然后它将为您完成所有工作。

因此,当行家扫描这个战争包装的pom时,它将需要

  • 编译我们的java类,它是一个servlet
  • 并将sample-web文件夹下的所有内容打包到war文件和所有依赖项中。

谁将做所有这些事情,因为我们没有在战争pom中添加任何特别的东西(除了一个依赖库之外)。 好吧,这是配置或我们的父pom(请参阅上一篇文章)。

为了编译我们的源代码,将“调用” maven-compiler-plugin ,并且由于我们已经定义了maven模块的打包为“ war”,因此将调用maven-war-plugin将所有内容打包为我们,创建适当的描述符。

因此,在我们的应用程序可能具有多个war或jar模块的情况下,如果我们有一个父pom,并且在一个中央位置定义了插件和基本配置,则我们不必在所有或我们中重新定义它war / jar pom(s)。

仅在战争或罐子之一需要特殊处理的情况下(例如,包装一些额外的东西或具有特殊的布局),然后在构建部分下,我们可以重新定义插件并覆盖或添加一些额外的东西,行为。 但这不是我们的情况。 我们希望对插件进行一次定义,并具有一个通用配置,该配置将由将要使用它的应用程序的所有模块“ 继承 ”。

使用上面的提示,您可以尝试并尝试创建上面已经“定义”的示例服务模块,或者等待第三部分将快速介绍其余的具体模块。

您可以在此处找到此帖子的代码。 (post2标签)

资源资源

  • 第1部分
  • Maven War文件夹布局
  • JavaEE 7- xml描述符

翻译自: https://www.javacodegeeks.com/2014/05/java-ee7-and-maven-project-for-newbies-part-2-defining-a-simple-war-for-our-application.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postman实现从response headers中获取cookie,并将其设置为环境变量

1.最近在学习postman的使用方法,为了保证后续模块操作&#xff0c;必须在登录时获取的session值&#xff0c;并将其设置为环境变量&#xff0c;session的位置处于response headers里面返回的set-cookie参数&#xff0c;并且将set-cookie中的session通过split方法截取出来. 写法…

010 pandas的DataFrame

一&#xff1a;创建 1.通过二维数组进行创建 2.取值 取列,取位置的值 3.切片取值 这个和上面的有些不同&#xff0c;这里先取行&#xff0c;再取列 4.设定列索引 这里使用的行索引与上面不同。 5.通过字典的方式创建 6.索引 包含行索引&#xff0c;与列索引 7.修改列索引 转载于…

unity烘培单个物体_Unity可编程渲染管线(SRP)教程:二、自定义着色器

本文翻译自Catlike Coding&#xff0c;原作者&#xff1a;Jasper Flick。本文经原作者授权&#xff0c;转载请说明出处。原文链接在下&#xff1a;https://catlikecoding.com/unity/tutorials/scriptable-render-pipeline/custom-shaders/​catlikecoding.com本章内容如下&…

一套比较完整的前端技术选型,需要规整哪些东西,你知道不?

1. 背景及现状 随着前端开发复杂度的日益增加&#xff0c;各种优秀的组件框架也遍地开花。同时&#xff0c;我们面临业务规模的快速发展和工程师团队的不断扩张&#xff0c;如何解决资源整合、模块开发、项目部署、性能优化等问题势在必行。 2. 目标 根据背景和现状的分析&a…

asp.net core2.0里的Nlog

Microsoft.Extensions.Logging&#xff0c;到了Version2.0.0.0&#xff0c;没了AddNlog() ? ——我找不到输出的日志&#xff01; 。。。。。经过一番百度 step1:添加个Provider 这样&#xff0c;在Startup里Configure实现一个ILoger 如果在controller里使用&#xff1f;——…

golang jwt设置过期_听说你的JWT库用起来特别扭,推荐这款贼好用的!

以前一直使用的是jjwt这个JWT库&#xff0c;虽然小巧够用, 但对JWT的一些细节封装的不是很好。最近发现了一个更好用的JWT库nimbus-jose-jwt&#xff0c;简单易用&#xff0c;API非常易于理解&#xff0c;对称加密和非对称加密算法都支持&#xff0c;推荐给大家&#xff01;简介…

随机验证码 pillow

安装 pip3 install pillow 基本使用 import PILfrom PIL import Imagefrom PIL import ImageDraw, ImageFontimport random 1.创建图片 from PIL import Image img Img.new(mode"RGB",size(120.30),color(255,255,255))# 在图片查看器中打开 # img.show()# 保存在本地…

微信小程序裁剪图片成圆形

前言 最近在开发小程序&#xff0c;产品经理提了一个需求&#xff0c;要求微信小程序换头像&#xff0c;用户剪裁图片必须是圆形&#xff0c;也在github上看了一些例子&#xff0c;一般剪裁图片用的都是方形&#xff0c;所以自己打算写一个小组件&#xff0c;可以把图片剪裁成圆…

MFC控件编程之组合框跟列表框

MFC控件编程之组合框跟列表框 一丶简介 如果要使用组合框跟列表框.那么就要知道.组合框列表框是最核心的东西就是索引. 索引是从0开始的. 二丶组合框列表框常用的方法 AddString(字符串) 添加一个字符串.放到最后面. DeleteString(索引); 删除指定索引的字符串. int GetCurSe…

多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态

Python大星一、Python 类的封装、继承和多态封装继承Python 支持多父类的继承机制&#xff0c;所以需要注意圆括号中基类的顺序&#xff0c;若是基类中有相同的方法名&#xff0c;并且在子类使用时未指定&#xff0c;Python 会从左至右搜索基类中是否包含该方法。一旦查找到则直…

前端也要会的数据结构 (不定期更新篇)

前端的软肋 一说到前端大家脑子里只有&#xff0c;布局、展示数据、修改样式等等。可是数据是哪里来的呢&#xff1f;后端给的后端给的。数据的结构呢&#xff1f;后端给啥用啥。 这就是前端的一个软肋。我们的业务让我们并不需要过深入的了解数据结构&#xff0c;数据结构和…

鸿蒙系统8月9日发布,8月9日,华为发布EMUI10.0系统+展示鸿蒙系统

8月9日&#xff0c;华为将召开华为全球开发者大会&#xff0c;本次大会邀请了5000名全球开发者、1500位合作伙伴&#xff0c;是华为历来规模最大的一次会议。在华为开发者大会上&#xff0c;华为将推出EMUI 10.0系统&#xff0c;由华为消费也业务软件总裁王成录主讲。EMUI是手机…

matlab main函数_Python 和MATLAB 制作Gif 图像

主要内容概述&#xff1a;预备知识MATLAB 代码实现GIF使用imageio 生成GIF使用animation 交互式方式生成GIF总结0&#xff0c;预备知识首先了解下什么是GIF 图片&#xff0c;以及常用的图片格式。GIF的全称是Graphics Interchange Format&#xff0c;可译为图形交换格式&#x…

ORB-SLAM2的特征提取算法

ORB-SLAM2跟踪线程对相机输入的每一帧图像进行跟踪处理&#xff0c;如下图所示&#xff0c;主要包括4步&#xff0c;提取ORB特征、从上一帧或者重定位来估计初始位姿、局部地图跟踪和关键帧处理。 以下结合相关理论知识&#xff0c;阅读ORB-SLAM2源代码&#xff0c;从而理解ORB…

引导界面图标好大_游戏里那些图标和界面,原来是这么设计出来的?

UI设计最硬核的思维 就是功能微信现在在做一种全面连接的功能&#xff0c;而游戏需要实现的是人机互动的功能。实现并完善功能&#xff0c;是互联网、游戏、网站、渴望UI人才的根本原因。如果说有电脑的世界是一片很大的面&#xff0c;那么可视化的操作&#xff0c;都是UI设计师…

爬格子呀9.17(图论)

刘汝佳的紫书差不多就告一段落吧&#xff0c;我觉得可以了&#xff0c;怎么说呢&#xff0c;这书也陪着自己走了一年多了吧&#xff0c;也目睹了从一个啥也不会的萌新到一个稍微会一点的萌新的转变。 差不多开始下本书吧&#xff0c;自己也大三了&#xff0c;时间真的有点紧啊w…

一个vue加egg.js的博客

之前自己的博客是用hexo做的&#xff0c;后面想做一个有后台的博客就打算用vue加node来试试&#xff0c;于是就有了这个博客。 项目地址 W-Blog W-Blog是一个基于vue和node的小小小博客 前端用vue&#xff0c;后端用egg.js 快速入门 技术栈 前端&#xff1a; 用户端&#…

android音量图标不见了,电脑声音图标不见了如何解决?

最近有电脑用户反映&#xff0c;看视频时觉得声音太小了&#xff0c;要调大点声&#xff0c;却发现任务栏上的声音图标不见了&#xff0c;想调个声音都难。那么&#xff0c;电脑声音图标不见了如何解决呢?我们一起往下看看。方法步骤一、XP系统下找回任务栏上的声音图标1、重启…

认识iOS系统架构

关于本文&#xff1a; 文章主要介绍iOS系统架构中的四层结构的内容、常用的框架、大致的功能&#xff0c;然后对iOS开发人员的发展提出自己的一些拙见。 一、iOS系统是基于UNIX系统&#xff0c;所有从系统稳定性上来说的确比其他操作系统的产品要好。 iOS在系统架构上分为4层&a…

Java泛型教程–示例类,接口,方法,通配符等

泛型是Java编程的核心功能之一&#xff0c;它是Java 5中引入的。如果您使用的是Java Collections &#xff0c;并且版本5或更高版本&#xff0c;则可以肯定使用了它。 在集合类中使用泛型非常容易&#xff0c;但是它提供了比仅创建集合类型更多的功能&#xff0c;我们将在本文中…