当前位置: 首页 > news >正文

宝塔网站建设跳转微信可打开为什么四川省建设厅网站打不开

宝塔网站建设跳转微信可打开,为什么四川省建设厅网站打不开,网站建设重庆最加科技,做国际贸易的有哪有个网站本帖主要介绍以下内容#xff1a; 什么是Maven为什么需要MavenMaven与极限编程 1、什么是Maven Maven这个词可以翻译为“知识的积累”#xff0c;也可以翻译为“专家”或“内行”。Maven是跨平台的项目管理工具。作为Apache组织中的一个颇为成功的开源项目#xff0c;Mav…本帖主要介绍以下内容 什么是Maven为什么需要MavenMaven与极限编程 1、什么是Maven Maven这个词可以翻译为“知识的积累”也可以翻译为“专家”或“内行”。Maven是跨平台的项目管理工具。作为Apache组织中的一个颇为成功的开源项目Maven主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目还是大型的企业级应用无论是传统的瀑布式开发还是流行的敏捷模式Maven都能大显身手。 1.1、何为构建 不管你是否意识到构建build是每一位程序员每天都在做的工作。早上来到公司我们做的第一件事情就是从源码库签出最新的源码然后进行单元测试如果发现失败的测试会找相关的同事一起调试修复错误代码。接着回到自己的工作上来编写自己的单元测试及产品代码我们会感激IDE随时报出的编译错误提示。 忙到午饭时间代码编写得差不多了测试也通过了开心地享用午餐然后休息。下午先在昏昏沉沉中开了个例会会议结束后喝杯咖啡继续工作。刚才在会上经理要求看测试报告于是找了相关工具集成进IDE生成了像模像样的测试覆盖率报告接着发了一封电子邮件给经理松了口气。谁料QA小组又发过来了几个bug没办法先本地重现再说于是熟练地用IDE生成了一个WAR包部署到Web容器下启动容器。看到熟悉的界面了遵循bug报告一步步重现了bug……快下班的时候bug修好了提交代码通知QA小组在愉快中结束了一天的工作。 仔细总结一下我们会发现除了编写源代码我们每天有相当一部分时间花在了编译、运行单元测试、生成文档、打包和部署等烦琐且不起眼的工作上这就是构建。如果我们现在还手工这样做那成本也太高了于是有人用软件的方法让这一系列工作完全自动化使得软件的构建可以像全自动流水线一样只需要一条简单的命令所有烦琐的步骤都能够自动完成很快就能得到最终结果。 1.2、Maven是优秀的构建工具 前面介绍了Maven的用途之一是服务于构建它是一个异常强大的构建工具能够帮我们自动化构建过程从清理、编译、测试到生成报告再到打包和部署。我们不需要也不应该一遍又一遍地输入命令一次又一次地点击鼠标我们要做的是使用Maven配置好项目然后输入简单的命令如mvn clean installMaven会帮我们处理那些烦琐的任务。 Maven是跨平台的这意味着无论是在Windows上还是在Linux或者Mac上都可以使用同样的命令。 我们一直在不停地寻找避免重复的方法。设计的重复、编码的重复、文档的重复当然还有构建的重复。Maven最大化地消除了构建的重复抽象了构建生命周期并且为绝大部分的构建任务提供了已实现的插件我们不再需要定义过程甚至不需要再去实现这些过程中的一些任务。最简单的例子是测试我们没必要告诉Maven去测试更不需要告诉Maven如何运行测试只需要遵循Maven的约定编写好测试用例当我们运行构建的时候这些测试便会自动运行。 想象一下Maven抽象了一个完整的构建生命周期模型这个模型吸取了大量其他的构建脚本和构建工具的优点总结了大量项目的实际需求。如果遵循这个模型可以避免很多不必要的错误可以直接使用大量成熟的Maven插件来完成我们的任务很多时候我们可能都不知道自己在使用Maven插件。此外如果有非常特殊的需求我们也可以轻松实现自己的插件。 Maven还有一个优点它能帮助我们标准化构建过程。在Maven之前十个项目可能有十种构建方式有了Maven之后所有项目的构建命令都是简单一致的这极大地避免了不必要的学习成本而且有利于促进项目团队的标准化。 综上所述Maven作为一个构建工具不仅能帮我们自动化构建还能够抽象构建过程提供构建任务实现它跨平台对外提供了一致的操作接口这一切足以使它成为优秀的、流行的构建工具。 1.3、Maven不仅仅是构建工具 Java不仅是一门编程语言还是一个平台通过JRuby和Jython我们可以在Java平台上编写和运行Ruby和Python程序。我们也应该认识到Maven不仅是构建工具还是一个依赖管理工具和项目信息管理工具。它提供了中央仓库能帮我们自动下载构件。 在这个开源的年代里几乎任何Java应用都会借用一些第三方的开源类库这些类库都可通过依赖的方式引入到项目中来。随着依赖的增多版本不一致、版本冲突、依赖臃肿等问题都会接踵而来。手工解决这些问题是十分枯燥的幸运的是Maven提供了一个优秀的解决方案它通过一个坐标系统准确地定位每一个构件artifact也就是通过一组坐标Maven能够找到任何一个Java类库如jar文件。Maven给这个类库世界引入了经纬让它们变得有秩序于是我们可以借助它来有序地管理依赖轻松地解决那些繁杂的依赖问题。 Maven还能帮助我们管理原本分散在项目中各个角落的项目信息包括项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等。这些微小的变化看起来很琐碎并不起眼但却在不知不觉中为我们节省了大量寻找信息的时间。除了直接的项目信息通过Maven自动生成的站点以及一些已有的插件我们还能够轻松获得项目文档、测试报告、静态分析报告、源码版本日志报告等非常具有价值的项目信息。 使用Maven还能享受一个额外的好处即Maven对于项目目录结构、测试用例命名方式等内容都有既定的规则只要遵循了这些成熟的规则用户在项目间切换的时候就免去了额外的学习成本可以说是约定优于配置Convention Over Configuration。 2、为什么需要Maven Maven不是Java领域唯一的构建管理的解决方案。本节将通过一些简单的例子解释Maven的必要性并介绍其他构建解决方案如IDE、Make和Ant并将它们与Maven进行比较。 2.1、组装PC和品牌PC 我的第一台计算机是赛扬733的选购是一个漫长的过程我先阅读了大量的杂志以了解各类配件的优劣CPU、内存、主板、显卡甚至声卡我都仔细地挑选后来还跑了很多商家调货、讨价还价组装好后自己装操作系统和驱动程序……虽然这花费了我大量时间但我很享受这个过程。可是事实证明装出来的机器稳定性不怎么好。 一年前我需要配一台工作站这时候我已经没有太多时间去研究电脑配件了。我选择了某知名PC供应商的在线商店大概浏览了一下主流的机型选择了我需要的配置然后下单、付款。接着PC供应商帮我组装电脑、安装操作系统和驱动程序。一周后物流公司将电脑送到我的家里我接上显示器、电源、鼠标和键盘就能直接使用了。这为我节省了大量时间而且这台电脑十分稳定商家在把电脑发送给我之前已经进行了很好的测试。对了我还能享受两年的售后服务。 使用脚本建立高度自定义的构建系统就像买组装PC耗时费力结果也不一定很好。当然你可以享受从无到有的乐趣但恐怕实际项目中无法给你那么多时间。使用Maven就像购买品牌PC省时省力并能得到成熟的构建系统还能得到来自于Maven社区的大量支持。唯一与购买品牌PC不同的是Maven是开源的你无须为此付费。如果有兴趣你还能去了解Maven是如何工作的而我们无法知道那些PC巨头的商业秘密。 2.2、DE不是万能的 当然我们无法否认优秀的IDE能大大提高开发效率。当前主流的IDE如Eclipse和Net-Beans等都提供了强大的文本编辑、调试甚至重构功能。虽然使用简单的文本编辑器和命令行也能完成绝大部分开发工作但很少有人愿意那样做。然而IDE是有其天生缺陷的 IDE依赖大量的手工操作。编译、测试、代码生成等工作都是相互独立的很难一键完成所有工作。手工劳动往往意味着低效意味着容易出错。很难在项目中统一所有的IDE配置每个人都有自己的喜好。也正是由于这个原因一个在机器A上可以成功运行的任务到了机器B的IDE中可能就会失败。我们应该合理利用IDE而不是过多地依赖它。对于构建这样的任务在IDE中一次次地点击鼠标是愚蠢的行为。Maven是这方面的专家而且主流IDE都集成了Maven我们可以在IDE中方便地运行Maven执行构建。 2.3、Make Make也许是最早的构建工具它由Stuart Feldman于1977年在Bell实验室创建。Stuart Feldman也因此于2003年获得了ACM国际计算机组织颁发的软件系统奖。目前Make有很多衍生实现包括最流行的GNU Make和BSD Make还有Windows平台的Microsoft nmake等。 Make由一个名为Makefile的脚本文件驱动该文件使用Make自己定义的语法格式。其基本组成部分为一系列规则Rules而每一条规则又包括目标Target、依赖Prerequisite和命令Command。Makefile的基本结构如下 TARGET……:PREREQUISITE……COMMAND…….…… COMMAND ……. ……Make通过一系列目标和依赖将整个构建过程串联起来同时利用本地命令完成每个目标的实际行为。Make的强大之处在于它可以利用所有系统的本地命令尤其是UNIX/Linux系统丰富的功能、强大的命令能够帮助Make快速高效地完成任务。 Make通过一系列目标和依赖将整个构建过程串联起来同时利用本地命令完成每个目标的实际行为。Make的强大之处在于它可以利用所有系统的本地命令尤其是UNIX/Linux系统丰富的功能、强大的命令能够帮助Make快速高效地完成任务。 2.4、Ant Ant不是指蚂蚁而是意指“另一个整洁的工具”Another Neat Tool它最早用来构建著名的Tomcat其作者James Duncan Davidson创作它的动机就是因为受不了Makefile的语法格式。我们可以将Ant看成是一个Java版本的Make也正因为使用了Java,Ant是跨平台的。此外Ant使用XML定义构建脚本相对于Makefile来说这也更加友好。 与Make类似Ant有一个构建脚本build.xml如下所示 ?xml version1.0? project nameHellodefaultcompile target namecompiledescriptioncompile the Java source code to class files mkdir dirclasses/ javac srcdir.destdirclasses/ /targettarget namejardependscompiledescriptioncreate a Jar file jar destfilehello.jar fileset dirclassesincludes**/*.class/ manifest attribute nameMain-ClassvalueHelloProgram/ /manifest /jar /target /projectbuild.xml的基本结构也是目标target、依赖depends以及实现目标的任务。比如在上面的脚本中jar目标用来创建应用程序jar文件该目标依赖于compile目标后者执行的任务是创建一个名为classes的文件夹编译当前目录的java文件至classes目录。compile目标完成后jar目标再执行自己的任务。Ant有大量内置的用Java实现的任务这保证了其跨平台的特质同时Ant也有特殊的任务exec来执行本地命令。 和Make一样Ant也都是过程式的开发者显式地指定每一个目标以及完成该目标所需要执行的任务。针对每一个项目开发者都需要重新编写这一过程这里其实隐含着很大的重复。Maven是声明式的项目构建过程和过程各个阶段所需的工作都由插件实现并且大部分插件都是现成的开发者只需要声明项目的基本元素Maven就执行内置的、完整的构建过程。这在很大程度上消除了重复。 Ant是没有依赖管理的所以很长一段时间Ant用户都不得不手工管理依赖这是一个令人头疼的问题。幸运的是Ant用户现在可以借助Ivy管理依赖。而对于Maven用户来说依赖管理是理所当然的Maven不仅内置了依赖管理更有一个可能拥有全世界最多Java开源软件包的中央仓库Maven用户无须进行任何配置就可以直接享用。 2.5、不重复发明轮子 小张是一家小型民营软件公司的程序员他所在的公司要开发一个新的Web项目。经过协商决定使用Spring、iBatis和Tapstry。jar包去哪里找呢公司里估计没有人能把Spring、iBatis和Tapstry所使用的jar包一个不少地找出来。大家的做法是先到Spring的站点上去找一个spring-with-dependencies然后去iBatis的网站上把所有列出来的jar包下载下来对Tapstry、Apache commons等执行同样的操作。项目还没有开始WEB-INF/lib下已经有近百个jar包了带版本号的、不带版本号的、有用的、没用的、相冲突的怎一个“乱”字了得 在项目开发过程中小张不时地发现版本错误和版本冲突问题他只能硬着头皮逐一解决。项目开发到一半经理发现最终部署的应用的体积实在太大了要求小张去掉一些没用的jar包于是小张只能加班加点地一个个删…… 小张隐隐地觉得这些依赖需要一个框架或者系统来进行管理。 小张喜欢学习流行的技术前几年Ant十分流行他学了并成为了公司这方面的专家。小张知道Ant打包无非就是创建目录复制文件编译源代码使用一堆任务如copydir、fileset、classpath、ref、target然后再jar、zip、war打包就成功了。项目经理发话了“兄弟们新项目来了小张你来写Ant脚本”“是保证完成任务”接着小张继续创建一个新的XML文件。target cleantarget compiletarget jar……不知道他是否想过在他写的这么多的Ant脚本中有多少是重复劳动有多少代码会在一个又一个项目中重现。既然都差不多有些甚至完全相同为什么每次都要重新编写 终于有一天小张意识到了这个问题想复用Ant脚本于是在开会时他说“以后就都用我这个规范的Ant脚本吧新的项目只要遵循我定义的目录结构就可以了。”经理听后觉得很有道理“嗯确实是个进步。” 这时新来的研究生发言了“经理用Maven吧这个在开源社区很流行比Ant更方便。”小张一听很惊讶Maven真比自己的“规范化Ant”强大其实他不知道自己只是在重新发明轮子Maven已经有一大把现成的插件全世界都在用你自己不用写任何代码 为什么没有人说“我自己写的代码最灵活所以我不用Spring我自己实现IoC我不用Hibernate我自己封装JDBC” 3、Maven与极限编程 极限编程XP是近些年在软件行业红得发紫的敏捷开发方法它强调拥抱变化。该软件开发方法的创始人Kent Beck提出了XP所追求的价值、实施原则和推荐实践。下面看一下Maven是如何适应XP的。 首先看一下Maven如何帮助XP团队实现一些核心价值 简单。Maven暴露了一组一致、简洁的操作接口能帮助团队成员从原来的高度自定义的、复杂的构建系统中解脱出来使用Maven现有的成熟的、稳定的组件也能简化构建系统的复杂度。交流与反馈。与版本控制系统结合后所有人都能执行最新的构建并快速得到反馈。此外自动生成的项目报告也能帮助成员了解项目的状态促进团队的交流。此外Maven更能无缝地支持或者融入到一些主要的XP实践中测试驱动开发TDD。TDD强调测试先行所有产品都应该由测试用例覆盖。而测试是Maven生命周期的最重要的组成部分之一并且Maven有现成的成熟插件支持业界流行的测试框架如JUnit和TestNG。十分钟构建。十分钟构建强调我们能够随时快速地从源码构建出最终的产品。这正是Maven所擅长的只需要一些配置之后用一条简单的命令就能让Maven帮你清理、编译、测试、打包、部署然后得到最终的产品。持续集成CI。CI强调项目以很短的周期如15分钟集成最新的代码。实际上CI的前提是源码管理系统和构建系统。目前业界流行的CI服务器如Hudson和CruiseControl都能很好地和Maven进行集成。也就是说使用Maven后持续集成会变得更加方便。富有信息的工作区。这条实践强调开发者能够快速方便地了解到项目的最新状态。当然Maven并不会帮你把测试覆盖率报告贴到墙上也不会在你的工作台上放个鸭子告诉你构建失败了。不过使用Maven发布的项目报告站点并配置你需要的项目报告如测试覆盖率报告都能帮你把信息推送到开发者眼前。 上述这些实践并非只在XP中适用。事实上除了其他敏捷开发方法如SCRUM之外几乎任何软件开发方法都能借鉴这些实践。也就是说Maven几乎能够很好地支持任何软件开发方法。 例如在传统的瀑布模型开发中项目依次要经历需求开发、分析、设计、编码、测试和集成发布阶段。从设计和编码阶段开始就可以使用Maven来建立项目的构建系统。在设计阶段也完全可以针对设计开发测试用例然后再编写代码来满足这些测试用例。然而有了自动化构建系统我们可以节省很多手动的测试时间。此外尽早地使用构建系统集成团队的代码对项目也是百利而无一害。最后Maven还能帮助我们快速地发布项目。
http://www.tj-hxxt.cn/news/226318.html

相关文章:

  • 西昌建设招聘信息网站网站举报平台建设情况
  • 怎么样做美术招生信息网站网架公司的螺丝是不是公司安好
  • 信息网站大全电子商务网站建设 百度文库
  • 西宁市网站建设网站建设入门教学
  • 腾讯云手动搭建wordpress个人站点做网站的公司多吗
  • 国内jsp网站有哪些低价网站建设湘潭
  • 企业网站定制开发流程网站如何做分享
  • 模板做的网站 怎么提升排名品牌设计需要学什么
  • 自己怎么创建免费网站吗进一步加大网站集约化建设力度
  • 先建网站还是先做网页wordpress推介链接插件
  • 哪些网站做推广性价比高黄冈网站推广优化技巧
  • 做衣服哪个网站好保定市做网站的电话
  • 网站做icp备案需要多久单位网站建设费用什么会计科目
  • 婚庆网站制作西安做网站陕西必达
  • wordpress 网站地图插件wordpress图片尺寸 样式
  • 建筑网站推荐艺术网站建设
  • 建设部相关网站利用html做博客网站
  • 网站负责人 备案网站空间的权限
  • 商务网站建设sz886网站引流推广
  • 成都六度网站建设网站制作全包多少钱
  • 模板网站哪个平台好有经验的扬中网站建设
  • 绿色风格的网站南京建设网站多少钱
  • 网站怎么做可以合法让别人充钱微商城开店
  • 网站模板更换厦门网站建设设
  • 企业网站备案要求厦门建设局咨询电话
  • 电子简历模板抖音seo排名优化公司
  • 深圳麒麟网站建设青岛网站建设代理加盟
  • 网站推广的目的是什么网页素材及网站架构制作
  • 怀化租房网站关键词优化公司费用多少
  • 企业网站完整版vi设计百科