针对新手的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
    • 主要

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/341569.shtml

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

相关文章

电信级E1保护倒换设备产品介绍

1-8路E1倒换保护设备是由杭州飞畅科技有限公司自主研发生产的E1线路无损伤自动切换设备。本系列设备是本公司研制的专用超大规模集成电路的基础上开发的E1切换器。提供1-8路独立的E1倒换保护功能(816E1)&#xff0c;在默认工作方式下&#xff0c;主用E1线路出现故障时&#xff…

电脑杀毒优化问题

实测有用&#xff1a; 软件杀毒与卸载 哔哩哔哩杀毒卸载 电脑性能显卡优化 N卡优化

定制基元和DTO的(反)序列化和验证

最近&#xff0c;我们为您提供了新的HTTP框架HttpMate。 在引言文章中 &#xff0c;我们将请求和响应映射到域对象称为“最复杂的技术细节”&#xff0c;以及如何通过另一个伴侣MapMate帮助我们。 实际上&#xff0c;在将请求属性映射到您的域对象时&#xff0c;MapMate减轻了…

UBUNtu·E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用) E: 无法对目录 /var/lib/apt/lists/ 加锁 问题解决方法

E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用) E: 无法对目录 /var/lib/apt/lists/ 加锁 问题解决方法 参考链接1 参考链接2

电话光端机的电话业务不通问题,该怎么去检查?

我司的设备&#xff0c;电话光端机都是达到电信级别&#xff0c;通话声音是特别清晰的。如果电话光端机的电话杂音声过大可能是电话光端机的光口有误码引起的。 一般应该是光端机有误码引起的&#xff0c;产生误码的原因主要是光纤部分&#xff0c;因为一般设备一般发货前&…

java8 camel_Meet Fabric8:基于Camel和ActiveMQ的开源集成平台

java8 camel面料8 Fabric8是来自Red Hat的JBoss Fuse产品的Apache 2.0许可上游社区。 这是一个基于Apache ActiveMQ &#xff0c; Camel &#xff0c; CXF &#xff0c; Karaf &#xff0c; HawtIO等的集成平台。 它提供了自动化的配置和部署管理&#xff0c;以帮助使部署变得…

解决apt-get install E: 无法定位软件包问题

更换清华源后出现的问题 参考链接 参考链接2

电话光端机的电话接口类型有哪些?

电话光端机常用的的电话接口类型有&#xff1a;环路中继接口&#xff08;FXO&#xff09;、模拟用户线接口&#xff08;FXS&#xff09;、热线电话接口&#xff08;公务电话&#xff09;、磁石电话接口。接下来&#xff0c;我们就跟随飞畅科技的小编来详细了解下电话光端机的电…

如何使用可外部化的接口在Java中自定义序列化

在上一篇文章“用示例介绍的有关Java序列化的一切”中 &#xff0c;我解释了如何使用以下方法序列化/反序列化一个对象 Serializable接口&#xff0c;还说明了如何使用writeObject和readObject方法自定义序列化过程。 Java序列化过程的缺点 但是&#xff0c;这些定制还不够&a…

Ubuntu将python2.7默认更改为python3.X版本

1 删除原有链接 sudo rm /usr/bin/python2 建立软连接 sudo ln -s /usr/bin/python3.6 /usr/bin/python//3.6 3.5 2.7 可以根据需求更改 参考链接 建议使用方法二&#xff0c;方法一没使用成功

电话光端机使用什么光纤网络比较好?

电话光端机是一种将传统电话信号转换为光信号并通过光纤传输的设备&#xff0c;要使用电话光端机&#xff0c;必须首先具有光纤网络。那么电话光端机使用哪种纤维更好呢&#xff1f;接下来就让我们跟随飞畅科技的小编一起来看看吧&#xff01; 如果电话光端机使用的光纤网络在…

NS3出现错误cc1plus: all warnings being treated as errors

参考链接 在运行./waf之前首先进行configure设置&#xff1a; CXXFLAGS"-Wno-error" ./waf configure #注意等号前后没有空格//进行该配置之后再进行编译 即可忽略警告

电话光端机原理及作用分析

常用的光端机分为多种类型&#xff0c;例如电话光端机、网络光端机、音频光端机、视频光端机、串口光端机、PDH光端机等。通常&#xff0c;电话光端机是最常用的&#xff0c;并且它们也被广泛使用。今天&#xff0c;就由光端机专业厂家飞畅科技来为大家普及下电话光端机的原理及…

ns-3文件编译出错总结

1、某个依赖项没有配好&#xff0c;应该卸载设备再重新安装&#xff0c;否则会造成干扰&#xff0c;导致编译出错 2、某文件资料下载不全&#xff0c;导致安装一直与教程不符。这种情况应该重下载文件 3、Git-hub下载代码慢&#xff0c;需要有一定的耐心

关于Jakarta EE与MicroProfile的创新和关系的提案

在JCrete非会议上&#xff0c;我们中的一些人正在就Jakarta EE的愿景&#xff0c;尤其是与MicroProfile的关系进行头脑风暴。 我想开始讨论&#xff0c;以使所有人都在同一页面上&#xff0c;尤其是Jakarta EE和MicroProfile之间的关系以及Jakarta的创新应如何。 我相信我们中的…

电话光端机作用,电话光端机功能特点介绍

电话光端机顾名思义其实也是一种光端机&#xff0c;但是他不仅仅只能传输电话的光端机。它的用户接口类型多样&#xff08;包括语音、数据、图象&#xff09;&#xff0c;均以小型模块化部件方式装配到母板上&#xff0c;各种用户模块可以混合装配&#xff0c;方便扩容及维护。…

光端机的作用是什么? 简述光端机的作用

简单说光端机是光信号传输的终端设备&#xff0c;光端机一般都是成对使用&#xff0c;分为光发射机和光接收机。市面上常见的光端机主要有&#xff1a;电话光端机、PDH光端机、高清视频光端机、音频光端机、以太网光端机、数据光端机等等。那么&#xff0c;各类光端机的作用是什…

Ubunt中卸载protobuf与安装3.6.0版本步骤

1.卸载Ubuntu自带的protobuf&#xff1b; # sudo apt-get remove libprotobuf-dev # which protoc// 运行完“which protoc”会显示一个protoc的路径&#xff0c;如果没有显示则下面这条命令不必执行 # rm /usr/local/bin/protoc// 具体路径以“which protoc”显示的为准 到…

db2分页sql_停止尝试使用内部DB框架模拟SQL OFFSET分页!

db2分页sql我敢肯定&#xff0c;到目前为止&#xff0c;您已经以多种方式弄错了。 而且您可能很快将无法正确处理。 那么&#xff0c;当您可以实施业务逻辑时&#xff0c;为什么还要在SQL调整上浪费您的宝贵时间呢&#xff1f; 让我解释… 直到最近的SQL&#xff1a;2008标准 …