




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaEE,JavaEE应用与开发环境,应用服务器,应用服务器是用于创建、部署、运行和管理分布式企业级应用的软件服务器。它管理用户请求,为业务逻辑提供宿主环境、数据连接、事务处理、目录服务等后端计算资源。包含web服务器功能的应用服务器叫做web应用服务器。JavaEE应用服务器=Web服务器+EJB容器。JavaEE服务器提供了企业应用中包含的所有网络服务和商业逻辑服务,J2EEserver(J2EE服务器)是J2EE产品的运行时服务部分。一个J2EE服务器提供EJB容器(EJBContainer)和Web容器(WebContainer)。,应用服务器的作用,安全服务(SecurityServices):为了获得资源访问权,客户必须通过服务器的认证,因此服务器必须要有验证用户的安全设施。安全验证的手段主要包括:增加用户/用户组增加对组件的访问控制提供对安全服务的验证(如操作系统,LDAP等)通过用户主机上数字认证的使用来实现安全验证状态和会话管理(StateandSessionManagement):服务器必须在同一用户会话过程的多次请求之间维护有关的状态数据,应用服务器的作用,负载平衡和失败恢复(LoadBalancingandFail-Over):所有的应用程序服务器都提供某种类型的负载平衡和失败恢复机制。负载平衡意味着一组服务器可以被集中成为一个服务器集群(cluster/farm)。发往服务器的请求被一个分配器(dispatcher)处理以便将请求发给最空闲的服务器,此后客户将直接与那台服务器通信。负载平衡机制为系统提供了很好的扩展性,随着用户负载的增加,更多的服务器主机可以被加入到服务器集群中失败恢复机制提供容错性。如果集群内某台主机失效停机,新的请求将被重新路由给其他某台服务器,状态和会话数据将被复制给集群内其他服务器或是被存储在永久性媒介(如数据库)中,使用户数据对每个服务器总是保持可用,应用服务器的作用,业务和处理逻辑(BusinessandProcessingLogic):在应用程序服务器的核心部分集中容纳了业务逻辑(即访问,生成数据和执行处理的代码)。一旦组件被创建,就可以被载入到应用程序服务器中,分配适当的安全设定,然后就可以运行胖客户访问服务器组件(Rich-ClientAccesstoServerComponents):胖客户可以直接访问服务器端组件。例如Javaapplet可以请求服务器实例化一个组件,然后就可以调用其方法,应用服务器的作用,HTML生成:纯的瘦客户程序不能直接与服务器端组件通信,这意味着服务器端需要另一个组件来生成和处理HTML。应用服务器必须解码(decode)一个URL,来决定执行哪一个组件。该组件访问数据库或其他组件,获得结果集,将结果集包装为HTML(或XML),再返回给浏览器。服务器从HTTP请求中获取数据,使其为服务器端被调用的组件使用数据访问:应用服务器提供JDBC机制,用于增加和管理与关系型数据库(如Oracle,DB2)的连接事务管理(TransactionManagement):在应用服务器环境中,事务是由服务器唯一管理的。开发人员编写发布SQL请求的代码和通知服务器该逻辑是否成功的代码。如果该调用序列中任何组件执行失败,服务器将执行回滚;否则服务器执行确认。服务器提供不同级别的事务控制,应用服务器的作用,连接池(ConnectionPooling):应用服务器不为每一个用户保持对数据源的单独连接。实际上,它维护了一个连接池,供所有服务器端组件共享。如果用户需要更新数据,相应组件就会请求服务器从连接池中分配一个可用连接,当所有的更新被完成后,组件负责通知服务器是否所有操作都成功。当一个事务结束后,连接被立刻释放线程池和实例池(ThreadPoolingandInstancePooling):高端的应用程序服务器还提供线程池和实例池。因为对于线程或者组件实例而言,开销最大的操作来自创建和实例化过程。线程池和实例池可以提供更好的性能,JavaEE平台产品,目前市场上已经有许多成熟的实现JavaEE规范的产品,其中有的是商业公司的产品,而有的是开放源代码的免费产品。,JavaEE商业平台,主要有BEAWebLogic、IBMWebSphere、OracleApplicationServer、BorlandEnterpriseServer、SUNiPlanetApplicationServer等。这些产品一般都包括一组完整的产品线,用来支持JavaEE应用从开发、组装、发布及管理的整个过程。(1)应用服务器商业公司产品中的应用服务器一般都完全支持JavaEE规范的应用服务器,除包括Servlet容器、EJB容器外,还提供WEBServices、CORBA等服务。(2)应用集成化开发环境商业公司的产品提供支持开发JavaEE应用的集成开发环境,可以大大提高应用开发、调试的效率。(3)JavaEE规范之外的工具除了在JavaEE规范中规定的部分外,商业公司的产品一般还包括提供服务器负载均衡、安全控制、开发企业门户等功能在内的工具。,常见的Web服务器,(1)ApacheTomcatApacheTomcat是一个Servlet容器,它支持Servlet/JSP规范。有些商业公司的JavaEE平台产品中使用它作为自己应用服务器的Servlet容器,或者在JavaEE应用集成开发环境中作为调试应用程序的服务器。注意:Tomcat目前只是Web容器,它不能运行EJB应用。(2)JettyJetty是一个开源、基于标准、全功能实现的JAVA服务器。它在Apache2.0协议下发布,因此可以自由的用于商业用途和发行。首创于1995年,Jetty受益于一个广大的用户社区,有一个稳定的核心开发者来持续专著的开发。Jetty是一个100%由Java实现的、开源的HTTP服务器和javax.servlet容器,它不仅仅作为一个独立服务软件(如Tomcat)被使用,而且其优良的组件设计、高内聚低耦合、高扩展性等特性使得Jetty非常易于作为嵌入式工具使用,在这一领域已经成功应用于多个产品当中。(3)Resin:Resin提供了最快的jsp/servlets运行平台,支持EJB。个人学习免费,但商业需要收费。,支持EJB3.0的商业应用服务器,Weblogic(10以上版本)是商业市场占有率第一的商业JavaEE应用服务器,它具有出色的稳定性,并提供了人性化的管理界面,还有企业需要使用到的众多功能。但在ejb3.0领域,一般认为它做的比jboss差些,bug比较多。SunApplicationServer(9.0以上版本)商业JavaEE应用服务器,如果你打算选用商业应用服务器运行ejb3,这个是不错的选择。OracleApplicationServer(10g以上版本)商业JavaEE应用服务器,如果你的数据库是oracle,要想兼容性更好,这个是不错的选择。apusic应用服务器这是国内的商业JavaEE应用服务器,主要在政府中占有一定的市场份额。但面向开发人员提供的文档实在太少。,开源产品,开放源代码的产品中有如ApacheTomcat及JBOSS等产品。这些产品不仅是免费的,而且能够提供很好的功能和性能,因此也有很广泛的应用。(1)ApacheTomcat(2)Jetty,开源产品,(3)JBOSS(4.2.x以上版本支持EJB3.0)是一个成熟的开源的准JavaEE应用服务器,在开源JavaEE应用服务器中所占市场份额第一。如果你打算选用开源的JavaEE应用服务器,那么jboss是最值得选择的。JBOSS是一个EJB容器,但是因为它是基于JMX微内核结构开发的,所以很容易与其它产品集成在一起使用,如可以很方便地将JBOSS和Tomcat集成在一起使用。另外,JBOSS还有配置简单、应用热发布(不用停止服务器及应用的情况下发布或升级应用)等优点。(4)Glassfish是一个开源的JavaEE应用服务器,对JavaEE规范的支持非常好,其运行性能比较高。因为发展时间相对较短,市场占有率比较低。另外,它能否提供稳定的运行性能,还有待时间的考验。,实验开发环境,实验开发环境,JDK1.6jdk-6u22-windows-i586-p.exeTomcat7.0.6Apache-ant-1.8.1MySql5.1或更高版本安装时选择GBK编码方式同时下载connector/jmysql-connector-java-5.1.17-bin.jarEclipse3.6forJavaEEDevelopereclipse-jee-helios-SR1-win32.zipCVSWinCvs2_0_2-4.zip(包含服务器端cvsnt和客户端wincvs)可选安装:Python2.7.2或TCL,JDK1.6的安装与配置,(1)安装(2)设置路径添加JAVA_HOME环境变量,其中JAVA_HOME代表JDK(不是JRE)的安装路径,如:C:ProgramFilesJavajdk1.6.0_27安装完成后,手工添加CLASSPATH环境变量,新建该环境变量的值:.;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar或命令行添加:SetCLASSPATH=%CLASSPATH%;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar如果为了可以编译和运行Java程序,还应该在PATH环境变量中增加%JAVA_HOME%/bin。SetPATH=%PATH%;%JAVA_HOME%/bin,JDK1.6的安装与配置,类似操作界面:,Tomcat安装与配置,Tomcat安装版本使用Tomcat7.0.x以上,才支持Servlet3.0规范,相配套的JDK建议使用JDK1.6以上。JDK须先安装,并配置好JAVA_HOME。Tomcat安装:从apache-tomcat-7.0.6-windows-x86.zip解压到一个目录下即可Tomcat文件结构bin,conf,lib,logs,temp,webapps,work目录,LICENSE等文件测试tomcat是否正确安装:执行/bin/startup.bat,启动服务器建议可对startup.bat,shutdown.bat等文件建快捷方式到桌面,方便使用测试:http:/localhost:8080,Tomcat安装与配置,配置Web服务端口在conf/server.xml下修改:8080改为其他端口,如:8888(1024以上以避免端口冲突)Tips:可使用EditPlus或UltraEdit编辑器,方便操作启动多个web服务器运行实例(多个Web服务)复制元素,并修改其元素内部配置须运行于不同端口,Tomcat安装与配置,配置内容列表特性出于安全,Web服务器默认不开放文件内容列表特性开发期间,为便于调试,可打开文件内容列表特性修改文件conf/web.xml:listingsfalsefalsetrue,Tomcat安装与配置,安全(用户授权)配置为了保证WEB应用的安全性,通常需要对客户端进行认证,常用的Web安全验证方式有:BASIC(基本认证),FORM(基于表单的认证),DIGEST(消息摘要认证),CLIENT-CERT(数字证书认证)等几种方法。其中BASIC认证是一种基于角色用户的简单的实现身份验证的方式,当用户访问受限的资源时,使用基本认证的服务器会要求浏览器弹出一个对话框,并且要求用户输入用户名和密码。只有用户输入了正确的认证信息,用户才能访问到这些资源,否则在尝试三次失败之后,将显示一个认证错误页面。这种认证方式的缺点在于用户名和密码使用Base64编码进行传输,并不是非常安全。,Tomcat安装与配置,(1)Tomcat的三个控制台:Serverstatus,ManagerApp,HostManager(2)使用gui界面管理tomcat时需要用户名和密码才可登录通过JAAS控制用户认证与授权(这里采用BASIC)观察Manager应用的安全配置:webapps/manager/WEB-INF/web.xml(P11)针对不同的资源,指定了不同的用户角色要使用serverstatus,需要访问/text/*、/status/*资源,因此需要分配manager-gui角色(3)为manager-gui角色指定用户:修改conf/tomcat-users.xml增加关联manager-gui角色的用户名与密码,Tomcat安装与配置,部署Web应用部署方式:(1)tomcat自动部署拷贝Web应用到webapps目录下,实现自动部署(2)利用控制台手工部署进入serverstatus控制台,如图p1.4,1.5(3)自定义Web部署文件在conf/Catalina/localhost下创建部署配置文件,如dd.xml,重启tomcat,可自动部署访问:http:/localhost:8080/dd(4)修改server.xml文件部署Web应用Server.xml是全局文件,不建议修改(尽量避免修改),Tomcat安装与配置,配置tomcat数据源从tomcat5.5开始,tomcat内置了DBCP的数据源实现DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用。提供数据源的方式:全局数据源(所有Web应用都可以访问)局部数据源(单个Web应用可访问)(1)下载Mysql的JDBC驱动:mysql-connector-java-5.1.17-bin.jar拷贝到tomcat的lib目录下(2)修改conf/Catalina/localhost/dd.xml,增加定义,Tomcat安装与配置,Dd.xml,Tomcat安装与配置,Tomcat安装与配置,测试数据源tomcatTest.jsp);%,MySQL安装与配置,MySQL安装与配置MySql5.1或更高版本选择custom方式安装选择detailed方式配置,配置时选择GBK编码方式也可以修改:/my.ini:default-character-set=gbk用户名:root,密码:123456数据库操作:创建数据库和表进入/bin/mysql.bat或SetPATH=%PATH%;/bin在任意路径打mysql,即可进入mysql字符界面登录:c:mysqlurootp123456,MySQL安装与配置,命令:mysqlselectversion(),current_date;mysqlquit创建并选择数据库:mysqlCREATEDATABASEjavaee;mysqlUSEjavaee;Databasechanged创建表:mysqlSHOWTABLES;Emptyset(0.00sec)mysqlcreatetablenews_inf-(news_idintprimarykeyauto_increment,-news_titlevarchar(255);插入数据:mysqlinsertintonews_infvalues-(null,疯狂Java联盟),-(null,);,MySQL安装与配置,成批sql处理:mysqlsourcec:/test.sql;其它,可采用图形界面的Mysql管理器:NavicatMySQL是一个强大的MySQL数据库服务器管理和开发工具。它可以与任何3.21或以上版本的MySQL一起工作,并支持大部分的MySQL最新功能,包括触发器、存储过程、函数、事件、视图、管理用户,等等。NavicatforMySQL有企业版和个人免费版。MySQL-FrontphpMyAdmin,网页式的,需要php环境,Eclipse的安装与使用,下载并安装EclipseIDEforJavaEEDeveloper:eclipse-jee-helios-SR2-win32.zip直接将压缩文件里的eclipse解压到某个目录即可安装Eclipse插件方式在线安装Help-Installnewsoftware使用本地压缩包安装选择Archive手动安装直接安装将插件中的plugins和features分别复制到Eclipse的plugins和features目录,并重启Eclipse,Eclipse的安装与使用,扩展安装新建links目录Links目录下,创建文件jBMP.link,内容只有一行:path=如:d:pluginsjBPM(d:pluginsjBPM)下建eclipseplugins和eclipsefeatures将插件中的plugins和features分别复制到d:pluginsjBPMeclipseplugins和d:pluginsjBPMeclipsefeatures目录,并重启Eclipse,Eclipse的安装与使用,在Eclipse中配置Tomcat服务器新建Web项目导入Eclipse项目导入非Eclipse项目,Ant的安装与使用,Ant简介生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过程变得更加复杂,确保在每次生成期间都使用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本,这就变得更加重要了。C或C+中的传统项目经常使用make工具来做这件事情,其中生成任务是通过调用shell命令来执行的,而依赖关系定义在每个生成文件之间,以便它们总是以必需的顺序执行。简单的说,Ant是一个基于Java,并且主要用于Java工程的构建工具。Ant本意是AnotherNeatTool,也就是另一种整洁的工具,取首字符就是Ant。它有些类似于C中的make,但比make优越。现在存在的大多数Build工具,如make、gnumake、nmake、jam等都存在这样或那样的不足,比如依赖于特定的平台、配置文件过于复杂或者对格式无法检查而容易出错等。与这些工具相比较,Ant的两个特性决定了它是一款优秀的Build工具:(1)基于Java的实现。具有良好的跨平台性,同时可以通过增加新的Java类来扩展Ant的功能,而无需去了解不同平台上不同的脚本语言。(2)基于XML的配置文件。Ant以XML树来描述Target/Task的关系,文件结构清晰、易读易写,并且利用XML对格式的控制来避免由于配置文件的错误造成的Build操作失败。,Ant的安装与使用,Ant的下载与安装下载apache-ant-1.8.1-bin.zip将其中的ant目录解压到磁盘的某个路径下即可Ant配置配置环境变量:SETANT_HOME=D:Ant181/注意是Ant的安装目录,不是bin子目录SETPATH=%PATH%;%ANT_HOME%bin;在配置环境变量之前,请确认已经正确设置了JAVA_HOME系统变量测试:打入ant命令,看到如下输出说明已成功安装了Ant工具:Buildfile:build.xmldoesnotexist!Buildfailed,Ant的安装与使用,Ant的一些核心概念:XML:构建文件是以XML文件来描述的,采用XML格式有很多好处,这里就不一一列举。陈述式语法:构建文件短小精悍,且易于理解。每个构建文件包含一个工程(project)。每个工程包含若干个目标(target)。目标可以依赖于其他的目标(depends)。目标包含任务(task)。易于使用Java语言增加新的任务-易于扩展(自定义)。,Build.xml,项目层次结构:Src,classes,lib,dist,build.xmlAnt生成文件默认名字是build.xml,也可以是其他名字(这时需要作为参数传给Ant工具)build.xml通常是放在项目的顶层目录中Ant的Build文件是一个标准的XML文件,它包含一个根节点Project,每个Project定义了至少一个或多个Target,每个Target又是一系列Task的集合,每个Task是一段可被执行的代码。它们之间的关系如图所示:,Build.xml,build.xml文件的结构,运行Ant运行Ant非常简单,当你正确地安装Ant后,只要输入ant就可以了。没有指定任何参数时,Ant会在当前目录下查询build.xml文件。如果找到了就用该文件作为buildfile。如果你用-find选项。Ant就会在上级目录中寻找buildfile,直至到达文件系统的根。要想让Ant使用其他的buildfile,可以用参数-buildfilefile,这里file指定了你想使用的buildfile。可以指定执行一个或多个target。当省略target时,Ant使用标签的default属性所指定的target。例子:ant使用当前目录下的build.xml运行Ant,执行缺省的target。ant-buildfiletest.xml使用当前目录下的test.xml运行Ant,执行缺省的target。ant-buildfiletest.xmldist使用当前目录下的test.xml运行Ant,执行一个叫做dist的target。ant-buildfiletest.xml-Dbuild=build/classesdist使用当前目录下的test.xml运行Ant,执行一个叫做dist的target,并设定build属性的值为build/classes。,Projectsproject有下面的属性:AttributeDescriptionRequired-(1)name项目名称.No(2)default当没有指定target时使用的缺省targetYes(3)basedir用于计算所有其他路径的基路径。该属性可以被basedirproperty覆盖。当覆盖时,该属性被忽略。如果属性和basedirproperty都没有设定,就使用buildfile文件的父目录。No(3)description项目的描述以一个顶级的元素的形式出现(参看description小节)。一个项目可以定义一个或多个target。一个target是一系列你想要执行的。任务。执行Ant时,你可以选择执行那个target。当没有给定target时,使用project的default属性所确定的target。,Targets一个target可以依赖于其他的target。例如,你可能会有一个target用于编译程序,一个target用于生成可执行文件。你在生成可执行文件之前必须先编译通过,所以生成可执行文件的target依赖于编译target。Ant会处理这种依赖关系。然而,应当注意到,Ant的depends属性只指定了target应该被执行的顺序如果被依赖的target无法运行,这种depends对于指定了依赖关系的target就没有影响。Ant会依照depends属性中target出现的顺序(从左到右)依次执行每个target。然而,要记住的是只要某个target依赖于一个target,后者就会被先执行。假定我们要执行targetD。从它的依赖属性来看,你可能认为先执行C,然后B,最后A被执行。错了,C依赖于B,B依赖于A,所以先执行A,然后B,然后C,最后D被执行。一个target只能被执行一次,即时有多个target依赖于它(看上面的例子)。,target有下面的属性:AttributeDescriptionRequired-nametarget的名字Yesdepends用逗号分隔的target的名字列表,也就是依赖表。Noif执行target所需要设定的属性名。Nounless执行target需要清除设定的属性名。Nodescription关于target功能的简短描述。No,task,一个task是一段可执行的代码。一个task可以有多个属性(如果你愿意的话,可以将其称之为变量),属性只可能包含对property的引用。这些引用会在task执行前被解析。下面是Task的一般构造形式:这里name是task的名字,attributeN是属性名,valueN是属性值。Task有三种:核心任务:Ant自带的任务javac,java,jar,sql,echo,exec,copy,delete,mkdir,move%ANT_HOME%/docs/manual/Core/CoreTasks有详细描述可选任务:第三方任务,需要附加第三方的jar文件%ANT_HOME%/docs/manual/OptionalTasks有详细描述自定义任务:用户自己开发的任务,Properties一个project可以有很多的properties。可以在buildfile中用propertytask来设定,或在Ant之外设定。一个property有一个名字和一个值。property可用于task的属性值。这是通过将属性名放在“$”和“”之间并放在属性值的位置来实现的。例如如果有一个propertybuilddir的值是build,这个property就可用于属性值:$builddir/classes。这个值就可被解析为build/classes。,内置属性如果你使用了task定义了所有的系统属性,Ant允许你使用这些属性。例如,$对应操作系统的名字。要想得到系统属性的列表可参考theJavadocofSystem.getProperties。除了Java的系统属性,Ant还定义了一些自己的内置属性:basedirproject基目录的绝对路径(与的basedir属性一样)。ant.filebuildfile的绝对路径。ant.versionAnt的版本。当前执行的project的名字;由的name属性设定.ant.java.versionAnt检测到的JVM的版本,Path-likeStructures编译、运行java文件时,可能要引用第三方JAR包,这时需要用到或元素可以用“:”和“;”作为分隔符,指定类似PATH和CLASSPATH的引用。Ant会把分隔符转换为当前系统所用的分隔符。当需要指定类似路径的值时,可以使用嵌套元素。一般的形式是location属性指定了相对于project基目录的一个文件和目录,而path属性接受逗号或分号分隔的一个位置列表。path属性一般用作预定义的路径,在其他情况下,应该用多个location属性。,为简洁起见,classpath标签支持自己的path和location属性。所以:可以被简写作:也可通过元素指定路径。构成一个fileset的多个文件加入path-likestructure的顺序是未定的。上面的例子构造了一个路径值包括:$classpath的路径,跟着lib目录下的所有jar文件,接着是classes目录。,如果你想在多个task中使用相同的path-likestructure,你可以用元素定义他们(与target同级),然后通过id属性引用。path-likestructure可能包括对另一个path-likestructurede的引用(通过嵌套元素):,命令行变量有些task可接受参数,并将其传递给另一个进程。为了能在变量中包含空格字符,可使用嵌套的arg元素。AttributeDescriptionRequiredvalue一个命令行变量;可包含空格字符。只能用一个line空格分隔的命令行变量列表。file作为命令行变量的文件名;会被文件的绝对名替代。path一个作为单个命令行变量的path-like的字符串;或作为分隔符,Ant会将其转变为特定平台的分隔符。例子是一个含有空格的单个的命令行变量。是两个空格分隔的命令行变量。是一个命令行变量,其值在DOS系统上为dir;dir2;dir3;在Unix系统上为/dir:/dir2:/dir3。,一个典型的build.xml文件,构建文件的概念视图:工程包含一个目标的集合。在每个目标里是任务的声明,它们是对Ant用于构建该目标的行为说明。目标生成一个依赖关系图表来声明该目标的依赖关系。当执行一个目标时,必须先执行它们依赖的目标。,一个典型的build.xml文件,该构建过程如下:系统初始化1、编译2、生成JAVADOC4、打包5、上传到FTP,其中后两步结合到一起叫部署。执行时输出如下:pertiesBuildfile:build.xmlinit:mkdirCreateddir:/home/ant/Projects/OurProject/build/classesmkdirCreateddir:/home/ant/Projects/OurProject/distcompile:javacCompiling1sourcefileto/home/ant/Projects/OurProject/build/classes,doc:javadocGeneratingJavadocjavadocJavadocexecutionjavadocLoadingsourcefilesforpackageorg.example.antbook.lesson1.javadocConstructingJavadocinformation.javadocBuildingtreeforallthepackagesandclasses.javadocBuildingindexforallthepackagesandclasses.javadocBuildingindexforallclasses.deploy:jarBuildingjar:/home/ant/Projects/OurProject/dist/project.jarftpsendingfilesftp1filessentBUILDSUCCESSFULTotaltime:5seconds.,在执行时使用命令行参数以传入一个属性文件(perties),属性文件中包含连接FTP服务器使用的服务器名,用户名,用户密码来给特性使用。属性文件例子:perties内容server=user=rootpassword=123这个例子很好的展示了Ant的一些基本要素:目标依赖、特性的使用、编译、文档生成、JAR打包(tar,Zip,WAR,EAR等),最后是部署。Ant的核心任务()都是由Java类库来实现相应的功能。而一些复杂的任务、还需要第三方库的支持。,Antdemo,执行课本例子Codes01antQsbuild.xmlanthelpantcomplieantrunantbuildantclean,CVS的安装与使用,版本控制与管理工具:(1)CVS(ConcurrentVersionSystem)CVS是目前比较流行与优秀的版本管理与控制工具,是用来管理日常代码和文档的一个强有力的工具。开源项目,支持UNIX,Linux和windows等各种平台。(2)SVN(Subversion)开源项目,沿用CVS使用习惯,对CVS进行了增强,有替代CVS的趋势。(3)VSS(VisualSourceSafe)Windows项目的版本控制工具,与windows系统和开发工具高度集成。,CVS的安装与使用,CVS的基本概念CVS是很早的时候在Unix下发展起来的,它使用的术语比较特殊,需要先熟悉和理解,这是使用CVS的第一步。Repository:资料库。它是CVS服务器(可能在远程,也可能在本地)的根目录,我们所有的工作都保存在这个资料库中,包括源代码和这些代码的全部历史。一个Repository包含许多项目(Module)。Module:项目或叫模块。Module里面放的是一个项目的所有文件(包括源代码,文档文件,资源文件等等)。在物理上,Module是CVS服务器根目录下的第一级子目录。Import:导入。我们本地有一个软件项目,里面有许多各种类型的文件,都需要用CVS进行版本管理,那么第一步就是把这个软件项目的整个目录结构都Import到CVS的Repository中去。经过这种导入,CVS将为你的项目创建一个新的Module。Checkout:导出或叫检出。指将仓库中的一个Module中的东西导出到本地的工作目录下,然后我们可以在WinCvs的管理下,进行工作,修改其中的内容。,CVS的安装与使用,CVS的基本概念Commit:提交修改。我们在本地的工作目录下,对工程中的文件进行修改,这些修改,需要提交给CVS的资料库,这个过程,就叫Commit。你可以Commit一个文件,也可以Commit整个目录。Update:同步。它与Commit相对应,是从资料库中的项目(Module)中下载你同事修改过的文件(别忘记你的项目有许多人共同参与),如果这个文件在你本地也有,就会更新本地的拷贝,如果你本地没有,就会把新文件下载到你的本地。Revision:文件版本。这是CVS中一个需要特别注意的概念,它指的是单个文件的版本,而不是整个项目的版本。基本上,单个文件每次的修改,经过Commit之后,它的Revision都要改变一次,比如从1.1到1.2到1.3等等。特别要注意,单个文件的版本(Revision)与整个工程产品的版本(Version,或者Release)可以没有任何关系。例如,整个产品现在发行1.0版本(Version1.0)了,但是产品的源代码文件中,有的文件版本(Revision)可能是1.9,有的是2.1,等等。这很容易理解,因为为了发行产品V1.0,我们需要对源代码进行多次修改编译。,CVS的安装与使用,CVS的基本概念Release:发行版本。整个产品的版本,例如VC5.0,VC6.0等。Tag:标签。在一个开发的特定期,对一个文件或者多个文件给的符号名,一般是有意义的字符串,如“stable”,“release_1_0”等。比如,我们对某个文件的1.5版本加上标签:“memory_bug_fixed”,借助这个有意义的标签,我们可以理解1.5版本解决了内存Bug,所以说Tag赋予了版本一些文字含义。CVSROOT:特定资源库所对应的标识符字符串,通常由CVS服务器所在的主机名字、端口、连接CVS服务器的用户名和密码等信息组成。WorkSpace(工作空间):开发者存放项目的本地目录Branch:版本分支,CVS的安装与使用,CVS工作于服务器/客户端模式(Client/Server模式)。WinCvs是CVS在Windows下的图形客户端(CVS由于是在Unix下发展起来的,在使用的时候,有很多命令行,命令行中又带很多参数,习惯于Windows的读者很难记忆这些命令行和参数。WinCvs提供了用图形界面使用远程CVS服务的直观方法。)。它有两个基本工作模式:(1)WinCvs作为远程CVS的客户端在这种工作模式下,第一次使用WinCvs的基本流程如下:1)您首先要让CVS管理员给您分配一个用户名和密码,先使用WinCvs登录(Login)到CVS服务器。2)把本地需要CVS管理的原始目录导入(Import)到CVS服务器上去,使之成为CVS服务器上仓库(Repository)的一个Module。3)在本地硬盘上创建一个工作目录。4)从CVS服务器的仓库(Repository)导出(Checkout)一个Module到本地硬盘的工作目录5)从CVS服务器同步(Update)你同事的修改到你本地工作目录。在工作目录上进行工作,在这个过程中,把文件的中间版本(Revision)提交(Commit)给CVS服务器。,CVS的安装与使用,(2)WinCvs作为本地的服务器和客户端如果没有远程CVS服务器,WinCvs能够在本地同时作为Server和Client来工作。其中,服务器端的功能是WinCvs启动CVSNT在后台实现的,CVSNT也是一个开源项目,WinCvs版本自带CVSNT,您不用单独安装。在这种工作模式下,你需要在本地硬盘上开设一个CVS仓库目录,它的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林法律知识培训心得
- 棋王课件教学课件
- 桥环邻基参与效应课件
- 桥梁预应力张拉课件
- 2025年职业资格会计从业资格考试预测试题集锦
- 2025年民航飞行员执照私照PPL笔试模拟题及详解
- 2025年注册验船师资格考试(A级船舶检验法律法规)自测试题及答案一
- 理财专家一人公司商业模型方案 从副业起步构建月入10万的理财教育事业
- 2025年B级注册验船师资格考试复习资料练习题及答案一
- 2025年交通运输专业考试题及答案详解
- 2025年财政管理知识竞赛题库及答案
- 满意度调查测评方案
- 区域产业协同发展面试题
- 当归种植培训课件
- 三年(2023-2025)中考语文真题分类汇编(全国)专题22 议论文阅读(解析版)
- 学习2025年初中初三开学第一课专题
- 2025年浙江省教师招聘考试(语文)历年参考题库含答案详解(5卷)
- 医学类案例教学法
- GA/T 2158-2024法庭科学资金数据获取规程
- 《工程勘察设计收费标准》(2002年修订本)
- 《重组与突破》黄奇帆
评论
0/150
提交评论