JavaEE7和Maven工程入门.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaEE7和Maven工程入门

重庆达渝仁科技官网: HYPERLINK  一个简单Maven工程的结构 为什么? 在日常工作中,我经常需要解决许多简单的或者是复杂的Maven/Java EE工程结构的问题。为了找到解决办法,我经常要拿项目的结构做实验,在不同应用服务器上对部署进行测试并且调优。 对新手来说,Maven可能有一个很漫长的学习曲线。如果你参与进一个经常需要非常复杂的配置的现代化的JavaEE应用的时候,事情会变得更糟。在我的职业生涯中也曾见过:很多初级程序员,当他们参与到一个大的团队或者项目,很多时候,工程的结构已经被一些更高级的程序员调优和配置好了。他们会认为这是没问题的,并且也不会花时间来理解这些配置和结构。过去我也犯过这样的错误。他们被给予简单的编码任务,然后就一头扎进需求里面去了。很不幸,他们忽略了应用结构的学习。更高??的同僚们大多数时候因为时间限制也忘了在这个领域对他们进行培训。这会导致一些事故,因为之前没有经验,想让应用跑起来的时候,会把应用结构弄的一团糟。Maven和它的约定的目的是帮助构建通用的结构,然后对项目的结构应该是什么样子做了约定。但同样的,你需要理解这个工具和约定,然后才可以掌握你的配置。 经常会听到有人说“我在那里添加了一个lib,可以正常工作”。如果你回答“那里是什么意思?”,很可能会得到许多有意思的回复。碰巧或者是运气好的时候,应用确实能运行。但是,在一个复杂的多模块的应用里面,大多数时候,能运行说明不了什么——问题很快就会出现。 本系列的文章主要是针对Maven和JavaEE新手。如果你是一名高级程序员,欢迎分享或者把它当作一个示例。 我准备拿一个在我的日常工作中发现的有很多实际问题的例子开刀,尝试给出基本的解释或者是给出相关资源的连接。欢迎以一种干净的方式给出可操作或者可实现的建议、纠正或者是引用。学习Maven并且创建一个复杂但是却容易维护的应用,最好的方式是白手起家,从一个空的pom文件开始。 我想要向读者传达的主要意思是,*学习你的应用的结构,底层的构建工具也是你工作的一部分,永远不要假设总会有人会来处理。为了挑战更难的任务和改善作为Java开发者的技能,这也是很重要的一步。 用到的主要技术 基于JavaEE7的应用 应用会被打成WAR包 应用由很多组件组成(wars、jars、ejbjars) 用Java7进行编译 用Maven3进行打包 我的示例ear应用 作为本文示例,我的应用最终会会是一个EAR包。里面包含2个顶级的模块,一个war包和一个ejb-jar。此外还包含了数据库领域模型(JPA实体)类的jar。后面的文章中我会扩展这个结构,增加更多的资源。 下面的一个抽象的图片展示了我们的ear包将包含哪些东西。将来,war模块会包含servlet或者是jsf组件。services模块会包含许多常用的无状态的会话Bean(或是消息驱动Bean)。domain工程会有普通的用JPA2注解标注的Java类。 用Maven构造我们应用的基本结构 为了构建上面说的ear,我们需要使用Maven定义模块和应用的组成部分,它是我们的构建、打包、配置工具。这只是众多步骤中的一步,但是如果你一开始就搞明白了,接下来就是一些简单的技术或配置。这里不是最终的解决方案,而是很多时候当你开始一个新的应用时,如何找到接近标准的问题解决方式。因此,这里没有华而不实的东西,让我们遵守标准,开始构建一个坚实的基础吧。 首先让我们忘掉上面的那幅图,然后想一下:在Maven中模块是什么,他们是如何进行定义的,怎么把他们联系起来,如何定义他们之间的依赖关系。注意:我提倡的工作方式是遵守标准,而不是最终的解决方案。也就是说,你可以定义更少的模块和依赖,然后把你的应用打包成ear。假设我要覆盖非常复杂的结构,所以我总是会遵守标准,定义一个通用的结构。 假设你已经了解了Maven的一些基本改变,至少你应该熟悉一些术语。如果不是的话,请先看这里。 请记住,Maven是关于:根据定义良好的结构把你的文件放到正确的位置。定义Maven插件,插件是用来做诸如编译、打包、复制文件这样工作的工具。Maven内置了很多插件。所以,你需要用适当的配置在适当的地方来定义这些插件。不需要写make或者是ant脚本,只需要插入插件,然后让Maven按照定义的顺序来执行就可以了。 一个和我关系很好的前同事说过(最近的一封email里写道):在生活或者是编码中打破常规是很好的,但是在Maven中永远不要这么做。他是对的! 如果你不知道如何安装Maven,请看看这里(windows)或这里(Mac)。 我的Maven工程结构:抽象 我们正在使用Maven构建工程,所以需要考虑maven的pom和模块。为了能创建

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档