ch1-2JavaEE环境.ppt_第1页
ch1-2JavaEE环境.ppt_第2页
ch1-2JavaEE环境.ppt_第3页
ch1-2JavaEE环境.ppt_第4页
ch1-2JavaEE环境.ppt_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java EE应用开发,Java EE应用与开发环境,应用服务器,应用服务器是用于创建、部署、运行和管理分布式企业级应用的软件服务器。它管理用户请求,为业务逻辑提供宿主环境、数据连接、事务处理、目录服务等后端计算资源。 包含web服务器功能的应用服务器叫做web应用服务器。 Java EE应用服务器=Web服务器+EJB容器。 Java EE服务器提供了企业应用中包含的所有网络服务和商业逻辑服务,J2EE server(J2EE服务器)是J2EE产品的运行时服务部分。一个J2EE服务器提供EJB容器(EJB Container)和Web容器(Web Container,应用服务器的作用,安全服

2、务(Security Services):为了获得资源访问权,客户必须通过服务器的认证,因此服务器必须要有验证用户的安全设施。安全验证的手段主要包括: 增加用户/用户组 增加对组件的访问控制 提供对安全服务的验证(如操作系统,LDAP等) 通过用户主机上数字认证的使用来实现安全验证 状态和会话管理(State and Session Management):服务器必须在同一用户会话过程的多次请求之间维护有关的状态数据,应用服务器的作用,负载平衡和失败恢复(Load Balancing and Fail-Over): 所有的应用程序服务器都提供某种类型的负载平衡和失败恢复机制。 负载平衡意味着一

3、组服务器可以被集中成为一个服务器集群(cluster/farm)。 发往服务器的请求被一个分配器(dispatcher)处理以便将请求发给最空闲的服务器,此后客户将直接与那台服务器通信。负载平衡机制为系统提供了很好的扩展性,随着用户负载的增加,更多的服务器主机可以被加入到服务器集群中 失败恢复机制提供容错性。 如果集群内某台主机失效停机,新的请求将被重新路由给其他某台服务器,状态和会话数据将被复制给集群内其他服务器或是被存储在永久性媒介(如数据库)中,使用户数据对每个服务器总是保持可用,应用服务器的作用,业务和处理逻辑(Business and Processing Logic): 在应用程序

4、服务器的核心部分集中容纳了业务逻辑(即访问,生成数据和执行处理的代码)。一旦组件被创建,就可以被载入到应用程序服务器中,分配适当的安全设定,然后就可以运行 胖客户访问服务器组件(Rich-Client Access to Server Components): 胖客户可以直接访问服务器端组件。例如Java applet可以请求服务器实例化一个组件,然后就可以调用其方法,应用服务器的作用,HTML生成: 纯的瘦客户程序不能直接与服务器端组件通信,这意味着服务器端需要另一个组件来生成和处理HTML。应用服务器必须解码(decode)一个URL,来决定执行哪一个组件。该组件访问数据库或其他组件,获得

5、结果集,将结果集包装为HTML(或XML),再返回给浏览器。服务器从HTTP请求中获取数据,使其为服务器端被调用的组件使用 数据访问: 应用服务器提供JDBC机制,用于增加和管理与关系型数据库(如Oracle,DB2)的连接 事务管理(Transaction Management): 在应用服务器环境中,事务是由服务器唯一管理的。开发人员编写发布SQL请求的代码和通知服务器该逻辑是否成功的代码。如果该调用序列中任何组件执行失败,服务器将执行回滚;否则服务器执行确认。服务器提供不同级别的事务控制,应用服务器的作用,连接池(Connection Pooling): 应用服务器不为每一个用户保持对数

6、据源的单独连接。实际上,它维护了一个连接池,供所有服务器端组件共享。如果用户需要更新数据,相应组件就会请求服务器从连接池中分配一个可用连接,当所有的更新被完成后,组件负责通知服务器是否所有操作都成功。当一个事务结束后,连接被立刻释放 线程池和实例池(Thread Pooling and Instance Pooling): 高端的应用程序服务器还提供线程池和实例池。因为对于线程或者组件实例而言,开销最大的操作来自创建和实例化过程。线程池和实例池可以提供更好的性能,Java EE 平台产品,目前市场上已经有许多成熟的实现Java EE规范的产品,其中有的是商业公司的产品,而有的是开放源代码的免费

7、产品,Java EE 商业平台,主要有BEA WebLogic、IBM WebSphere、Oracle Application Server、Borland Enterprise Server、SUN iPlanet Application Server等。这些产品一般都包括一组完整的产品线,用来支持Java EE应用从开发、组装、发布及管理的整个过程。 (1)应用服务器 商业公司产品中的应用服务器一般都完全支持Java EE规范的应用服务器,除包括Servlet容器、EJB容器外,还提供WEB Services、CORBA等服务。 (2)应用集成化开发环境 商业公司的产品提供支持开发Jav

8、aEE应用的集成开发环境,可以大大提高应用开发、调试的效率。 (3)Java EE规范之外的工具 除了在JavaEE规范中规定的部分外,商业公司的产品一般还包括提供服务器负载均衡、安全控制、开发企业门户等功能在内的工具,常见的Web服务器,1)Apache Tomcat Apache Tomcat 是一个Servlet容器,它支持Servlet/JSP规范。有些商业公司的JavaEE平台产品中使用它作为自己应用服务器的Servlet容器,或者在JavaEE应用集成开发环境中作为调试应用程序的服务器。 注意:Tomcat目前只是Web容器,它不能运行EJB应用。 (2)Jetty Jetty是一

9、个开源、基于标准、全功能实现的JAVA服务器。它在Apache2.0协议下发布,因此可以自由的用于商业用途和发行。首创于1995年,Jetty受益于一个广大的用户社区,有一个稳定的核心开发者来持续专著的开发。 Jetty是一个100%由Java实现的、开源的HTTP服务器和javax.servlet容器,它不仅仅作为一个独立服务软件(如Tomcat)被使用,而且其优良的组件设计、高内聚低耦合、高扩展性等特性使得Jetty非常易于作为嵌入式工具使用,在这一领域已经成功应用于多个产品当中。 (3)Resin: Resin提供了最快的jsp/servlets运行平台,支持EJB。 个人学习免费,但商

10、业需要收费,支持EJB3.0的商业应用服务器,Weblogic(10以上版本) 是商业市场占有率第一的商业JavaEE应用服务器,它具有出色的稳定性,并提供了人性化的管理界面,还有企业需要使用到的众多功能。但在ejb3.0领域,一般认为它做的比jboss差些,bug比较多。 Sun Application Server(9.0以上版本) 商业JavaEE应用服务器,如果你打算选用商业应用服务器运行ejb3,这个是不错的选择。 Oracle Application Server(10g以上版本) 商业JavaEE应用服务器,如果你的数据库是oracle,要想兼容性更好,这个是不错的选择。 apu

11、sic应用服务器 这是国内的商业JavaEE应用服务器,主要在政府中占有一定的市场份额。但面向开发人员提供的文档实在太少,开源产品,开放源代码的产品中有如Apache Tomcat及JBOSS等产品。这些产品不仅是免费的,而且能够提供很好的功能和性能,因此也有很广泛的应用。 (1)Apache Tomcat (2)Jetty,开源产品,3)JBOSS(4.2.x以上版本支持EJB 3.0) 是一个成熟的开源的准JavaEE应用服务器,在开源JavaEE应用服务器中所占市场份额第一。如果你打算选用开源的JavaEE应用服务器,那么jboss是最值得选择的。 JBOSS 是一个EJB容器,但是因为

12、它是基于JMX微内核结构开发的,所以很容易与其它产品集成在一起使用,如可以很方便地将JBOSS和Tomcat集成在一起使用。另外,JBOSS还有配置简单、应用热发布(不用停止服务器及应用的情况下发布或升级应用)等优点。 (4)Glassfish 是一个开源的JavaEE应用服务器,对JavaEE规范的支持非常好,其运行性能比较高。因为发展时间相对较短,市场占有率比较低。另外,它能否提供稳定的运行性能,还有待时间的考验,实验开发环境,实验开发环境,JDK 1.6 jdk-6u22-windows-i586-p.exe Tomcat7.0.6 Apache-ant-1.8.1 MySql5.1或更

13、高版本 安装时选择GBK编码方式 同时下载connector/j mysql-connector-java-5.1.17-bin.jar Eclipse 3.6 for Java EE Developer eclipse-jee-helios-SR1-win32.zip CVS WinCvs2_0_2-4.zip(包含服务器端cvsnt和客户端wincvs) 可选安装: Python2.7.2或TCL,JDK1.6的安装与配置,1)安装 (2)设置路径 添加JAVA_HOME环境变量,其中JAVA_HOME代表JDK(不是JRE)的安装路径,如: C:Program FilesJavajdk1

14、.6.0_27 安装完成后,手工添加CLASSPATH环境变量,新建该环境变量的值: .;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar 或命令行添加: Set CLASSPATH=%CLASSPATH%;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar 如果为了可以编译和运行Java程序,还应该在PATH环境变量中增加%JAVA_HOME%/bin。 Set PATH=%PATH%;%JAVA_HOME%/bin,JDK1.6的安装与配置,类似操作界面,Tomcat安装与配置,Tomcat安装版

15、本 使用Tomcat 7.0.x以上,才支持Servlet 3.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:/localho

16、st:8080,Tomcat安装与配置,配置Web服务端口 在conf/server.xml下修改: 8080改为其他端口,如:8888(1024以上以避免端口冲突) Tips:可使用EditPlus或UltraEdit编辑器,方便操作 启动多个web服务器运行实例(多个Web服务) 复制元素,并修改其元素内部配置 须运行于不同端口,Tomcat安装与配置,配置内容列表特性 出于安全,Web服务器默认不开放文件内容列表特性 开发期间,为便于调试,可打开文件内容列表特性 修改文件conf/web.xml: listings false falsetrue,Tomcat安装与配置,安全(用户授权)

17、配置 为了保证WEB应用的安全性,通常需要对客户端进行认证,常用的Web安全验证方式有: BASIC(基本认证), FORM(基于表单的认证), DIGEST(消息摘要认证), CLIENT-CERT(数字证书认证)等几种方法。 其中BASIC认证是一种基于角色用户的简单的实现身份验证的方式,当用户访问受限的资源时,使用基本认证的服务器会要求浏览器弹出一个对话框,并且要求用户输入用户名和密码。只有用户输入了正确的认证信息,用户才能访问到这些资源,否则在尝试三次失败之后,将显示一个认证错误页面。 这种认证方式的缺点在于用户名和密码使用Base64编码进行传输,并不是非常安全,Tomcat安装与配

18、置,1)Tomcat的三个控制台: Server status,Manager App,Host Manager (2)使用gui界面管理tomcat时需要用户名和密码才可登录 通过JAAS控制用户认证与授权(这里采用BASIC) 观察Manager应用的安全配置:webapps/manager/WEB-INF/web.xml(P11) 针对不同的资源,指定了不同的用户角色 要使用server status,需要访问/text/*、/status/*资源,因此需要分配manager-gui角色 (3)为manager-gui角色指定用户: 修改conf/tomcat-users.xml 增加关

19、联manager-gui角色的用户名与密码,Tomcat安装与配置,部署Web应用 部署方式: (1)tomcat自动部署 拷贝Web应用到webapps目录下,实现自动部署 (2)利用控制台手工部署 进入server status控制台,如图p1.4,1.5 (3)自定义Web部署文件 在conf/Catalina/localhost下创建部署配置文件,如dd.xml,重启tomcat,可自动部署 访问:http:/localhost:8080/dd (4)修改server.xml文件部署Web应用 Server.xml是全局文件,不建议修改(尽量避免修改,Tomcat安装与配置,配置tom

20、cat数据源 从tomcat5.5开始,tomcat内置了DBCP的数据源实现 DBCP是一个依赖Jakarta commons-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安

21、装与配置,测试数据源tomcatTest.jsp ); ,MySQL安装与配置,MySQL安装与配置 MySql5.1或更高版本 选择custom方式安装 选择detailed方式配置,配置时选择GBK编码方式 也可以修改:/my.ini: default-character-set=gbk 用户名:root,密码:123456 数据库操作:创建数据库和表 进入/bin/mysql.bat或 Set PATH=%PATH%; /bin 在任意路径打mysql,即可进入mysql字符界面 登录: c:mysql uroot p123456,MySQL安装与配置,命令: mysql select

22、version(), current_date; mysqlquit 创建并选择数据库: mysql CREATE DATABASE javaee; mysql USE javaee; Database changed 创建表: mysql SHOW TABLES; Empty set (0.00 sec) mysqlcreate table news_inf -( news_id int primary key auto_increment, - news_title varchar(255); 插入数据: mysqlinsert into news_inf values -(null ,

23、疯狂Java联盟), -(null , ,MySQL安装与配置,成批sql处理: mysqlsource c:/test.sql; 其它,可采用图形界面的Mysql管理器: Navicat MySQL是一个强大的MySQL数据库服务器管理和开发工具。它可以与任何3.21或以上版本的MySQL一起工作,并支持大部分的MySQL最新功能,包括触发器、存储过程、函数、事件、视图、管理用户,等等。 Navicat for MySQL有企业版和个人免费版 。 MySQL-Front phpMyAdmin,网页式的,需要php环境,Eclipse的安装与使用,下载并安装Eclipse

24、 IDE for Java EE Developer: eclipse-jee-helios-SR2-win32.zip 直接将压缩文件里的eclipse解压到某个目录即可 安装Eclipse插件方式 在线安装 Help-Install new software 使用本地压缩包安装 选择Archive 手动安装 直接安装 将插件中的plugins和features分别复制到Eclipse的plugins和features目录,并重启Eclipse,Eclipse的安装与使用,扩展安装 新建links目录 Links目录下,创建文件jBMP.link,内容只有一行: path= 如:d:plug

25、insjBPM (d:pluginsjBPM)下建eclipseplugins和eclipsefeatures 将插件中的plugins和features分别复制到d:pluginsjBPMeclipseplugins和d:pluginsjBPMeclipsefeatures目录,并重启Eclipse,Eclipse的安装与使用,在Eclipse中配置Tomcat服务器 新建Web项目 导入Eclipse项目 导入非Eclipse项目,Ant的安装与使用,Ant简介 生成工具在软件开发中用来将源代码和其他输入文件转换为可执行文件的形式(也有可能转换为可安装的产品映像形式)。随着应用程序的生成过

26、程变得更加复杂,确保在每次生成期间都使用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本,这就变得更加重要了。 C 或 C+ 中的传统项目经常使用 make 工具来做这件事情, 其中生成任务是通过调用 shell 命令来执行的,而依赖关系定义在每个生成文件之间,以便它们总是以必需的顺序执行。 简单的说,Ant是一个基于Java,并且主要用于Java工程的构建工具。Ant本意是Another Neat Tool,也就是另一种整洁的工具,取首字符就是Ant。 它有些类似于C中的make,但比make优越。现在存在的大多数Build工具,如make、gnumake、nmake

27、、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

28、目录解压到磁盘的某个路径下即可 Ant配置 配置环境变量: SET ANT_HOME=D:Ant181 /注意是Ant的安装目录,不是bin子目录 SET PATH=%PATH%;%ANT_HOME%bin; 在配置环境变量之前,请确认已经正确设置了JAVA_HOME系统变量 测试: 打入ant命令,看到如下输出说明已成功安装了Ant工具: Buildfile: build.xml does not exist! Build failed,Ant的安装与使用,Ant的一些核心概念: XML:构建文件是以XML文件来描述的,采用 XML 格式有很多好处,这里就不一一列举。 陈述式语法:构建文件短

29、小精悍,且易于理解。 每个构建文件包含一个工程(project)。 每个工程包含若干个目标(target)。 目标可以依赖于其他的目标(depends)。 目标包含任务(task)。 易于使用 Java语言增加新的任务-易于扩展(自定义,Build.xml,项目层次结构 : Src,classes,lib,dist,build.xml Ant生成文件默认名字是build.xml,也可以是其他名字(这时需要作为参数传给Ant工具) build.xml通常是放在项目的顶层目录中 Ant的Build文件是一个标准的XML文件,它包含一个根节点Project,每个Project定义了至少一个或多个Ta

30、rget,每个Target又是一系列Task的集合,每个Task是一段可被执行的代码。它们之间的关系如图所示,Build.xml,build.xml文件的结构,运行Ant 运行Ant非常简单,当你正确地安装Ant后,只要输入ant就可以了。 没有指定任何参数时,Ant会在当前目录下查询build.xml文件。如果找到了就用该文件作为buildfile。如果你用 -find 选项。Ant就会在上级目录中寻找buildfile,直至到达文件系统的根。要想让Ant使用其他的buildfile,可以用参数 -buildfile file,这里file指定了你想使用的buildfile。 可以指定执行一

31、个或多个target。当省略target时,Ant使用标签的default属性所指定的target。 例子: ant 使用当前目录下的build.xml运行Ant,执行缺省的target。 ant -buildfile test.xml 使用当前目录下的test.xml运行Ant,执行缺省的target。 ant -buildfile test.xml dist 使用当前目录下的test.xml运行Ant,执行一个叫做dist的target。 ant -buildfile test.xml -Dbuild=build/classes dist 使用当前目录下的test.xml运行Ant,执行一

32、个叫做dist的target,并设定build属性的值为build/classes,Projects project有下面的属性: Attribute Description Required - (1)name 项目名称. No (2)default 当没有指定target时使用的缺省target Yes (3)basedir 用于计算所有其他路径的基路径。该属性可以被basedir property覆盖。当覆盖时,该属性被忽略。如果属性和basedir property都没有设定,就使用buildfile文件的父目录。 No (3) description 项目的描述以一个顶级的元素的形式

33、出现(参看description小节)。 一个项目可以定义一个或多个target。一个target是一系列你想要执行的。任务。执行Ant时,你可以选择执行那个target。当没有给定target时,使用project的default属性所确定的target,Targets 一个target可以依赖于其他的target。例如,你可能会有一个target用于编译程序,一个target用于生成可执行文件。你在生成可执行文件之前必须先编译通过,所以生成可执行文件的target依赖于编译target。Ant会处理这种依赖关系。 然而,应当注意到,Ant的depends属性只指定了target应该被执行的

34、顺序如果被依赖的target无法运行,这种depends对于指定了依赖关系的target就没有影响。 Ant会依照depends属性中target出现的顺序(从左到右)依次执行每个target。然而,要记住的是只要某个target依赖于一个target,后者就会被先执行。 假定我们要执行target D。从它的依赖属性来看,你可能认为先执行C,然后B,最后A被执行。错了,C依赖于B,B依赖于A,所以先执行A,然后B,然后C,最后D被执行。 一个target只能被执行一次,即时有多个target依赖于它(看上面的例子,target有下面的属性: Attribute Description Req

35、uired - name target的名字 Yes depends 用逗号分隔的target的名字列表,也就是依赖表。 No if 执行target所需要设定的属性名。 No unless 执行target需要清除设定的属性名。 No description 关于target功能的简短描述。 No,task,一个task是一段可执行的代码。 一个task可以有多个属性(如果你愿意的话,可以将其称之为变量),属性只可能包含对property的引用。这些引用会在task执行前被解析。 下面是Task的一般构造形式: 这里name是task的名字,attributeN是属性名,valueN是属性值

36、。 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中用property task来设定,或在Ant之外设定。一个property有一个名字和一个

37、值。property可用于task的属性值。这是通过将属性名放在“$” 和“”之间并放在属性值的位置来实现的。 例如如果有一个property builddir的值是build,这个property就可用于属性值:$builddir/classes。这个值就可被解析为 build/classes,内置属性 如果你使用了 task 定义了所有的系统属性,Ant允许你使用这些属性。例如,$对应操作系统的名字。 要想得到系统属性的列表可参考the Javadoc of System.getProperties。 除了Java的系统属性,Ant还定义了一些自己的内置属性: basedir

38、 project基目录的绝对路径 (与的basedir属性一样)。 ant.file buildfile的绝对路径。 ant.version Ant的版本。 当前执行的project的名字;由的name属性设定. ant.java.version Ant检测到的JVM的版本,Path-like Structures 编译、运行java文件时,可能要引用第三方JAR包,这时需要用到或元素 可以用“:”和“;”作为分隔符,指定类似PATH和CLASSPATH的引用。Ant会把分隔符转换为当前系统所用的分隔符。 当需要指定类似路径的值时,可以使用嵌套元素。一般的形式

39、是 location属性指定了相对于project基目录的一个文件和目录,而path属性接受逗号或分号分隔的一个位置列表。path属性一般用作预定义的路径,在其他情况下,应该用多个location属性,为简洁起见,classpath标签支持自己的path和location属性。所以: 可以被简写作: 也可通过元素指定路径。构成一个fileset的多个文件加入path-like structure的顺序是未定的。 上面的例子构造了一个路径值包括:$classpath的路径,跟着lib目录下的所有jar文件,接着是classes目录,如果你想在多个task中使用相同的path-like struc

40、ture,你可以用元素定义他们(与target同级),然后通过id属性引用。 path-like structure可能包括对另一个path-like structurede的引用(通过嵌套元素):,命令行变量 有些task可接受参数,并将其传递给另一个进程。为了能在变量中包含空格字符,可使用嵌套的arg元素。 Attribute Description Required value 一个命令行变量;可包含空格字符。 只能用一个 line 空格分隔的命令行变量列表。 file 作为命令行变量的文件名;会被文件的绝对名替代。 path 一个作为单个命令行变量的path-like的字符串;或作为分

41、隔符,Ant会将其转变为特定平台的分隔符。 例子 是一个含有空格的单个的命令行变量。 是两个空格分隔的命令行变量。 是一个命令行变量,其值在DOS系统上为dir;dir2;dir3;在Unix系统上为/dir:/dir2:/dir3,一个典型的build.xml文件,构建文件的概念视图:工程包含一个目标的集合。在每个目标里是任务的声明,它们是对Ant 用于构建该目标的行为说明。目标生成一个依赖关系图表来声明该目标的依赖关系。当执行一个目标时,必须先执行它们依赖的目标,一个典型的build.xml文件,该构建过程如下: 系统初始化1、编译 2、生成JAVADOC 4、打包 5、上传到FTP,其中

42、后两步结合到一起叫部署。 执行时输出如下: ant -propertyfile perties Buildfile: build.xml init: mkdir Created dir: /home/ant/Projects/OurProject/build/classes mkdir Created dir: /home/ant/Projects/OurProject/dist compile: javac Compiling 1 source file to /home/ant/Projects/OurProject/build/classes,doc: javadoc Ge

43、nerating Javadoc javadoc Javadoc execution javadoc Loading source files for package org.example.antbook.lesson1. javadoc Constructing Javadoc information. javadoc Building tree for all the packages and classes. javadoc Building index for all the packages and classes. javadoc Building index for all c

44、lasses. deploy: jar Building jar: /home/ant/Projects/OurProject/dist/project.jar ftp sending files ftp 1 files sent BUILD SUCCESSFUL Total time: 5 seconds,在执行时使用命令行参数以传入一个属性文件(perties),属性文件中包含连接FTP服务器使用的服务器名,用户名,用户密码来给特性使用。 属性文件例子: perties内容 server= user=root password=123 这个例子

45、很好的展示了Ant的一些基本要素:目标依赖、特性的使用、编译、文档生成、JAR打包(tar,Zip,WAR,EAR等),最后是部署。 Ant的核心任务()都是由Java类库来实现相应的功能。而一些复杂的任务、还需要第三方库的支持,Ant demo,执行课本例子 Codes01antQsbuild.xml ant help ant complie ant run ant build ant clean,CVS的安装与使用,版本控制与管理工具: (1)CVS(Concurrent Version System) CVS 是目前比较流行与优秀的版本管理与控制工具,是用来管理日常代码和文档的一个强有力

46、的工具。 开源项目,支持UNIX,Linux和windows等各种平台。 (2)SVN(Subversion) 开源项目,沿用CVS使用习惯,对CVS进行了增强,有替代CVS的趋势。 (3)VSS(Visual Source Safe) Windows项目的版本控制工具,与windows系统和开发工具高度集成,CVS的安装与使用,CVS的基本概念 CVS 是很早的时候在 Unix 下发展起来的,它使用的术语比较特殊,需要先熟悉和理解,这是使用 CVS的第一步。 Repository: 资料库。它是 CVS服务器(可能在远程,也可能在本地)的根目录,我们所有的工作都保存在这个资料库中,包括源代码

47、和这些代码的全部历史。一个Repository包含许多项目(Module)。 Module:项目或叫模块。Module里面放的是一个项目的所有文件(包括源代码,文档文件,资源文件等等) 。在物理上,Module 是 CVS服务器根目录下的第一级子目录。 Import:导入。我们本地有一个软件项目,里面有许多各种类型的文件,都需要用CVS 进行版本管理,那么第一步就是把这个软件项目的整个目录结构都 Import 到 CVS 的Repository中去。经过这种导入,CVS 将为你的项目创建一个新的Module。 Checkout:导出或叫检出。指将仓库中的一个Module中的东西导出到本地的工作

48、目录下,然后我们可以在 WinCvs 的管理下,进行工作,修改其中的内容,CVS的安装与使用,CVS的基本概念 Commit:提交修改。我们在本地的工作目录下,对工程中的文件进行修改,这些修改,需要提交给 CVS的资料库,这个过程,就叫Commit。你可以Commit一个文件,也可以Commit 整个目录。 Update:同步。它与Commit 相对应,是从资料库中的项目(Module)中下载你同事修改过的文件(别忘记你的项目有许多人共同参与),如果这个文件在你本地也有,就会更新本地的拷贝,如果你本地没有,就会把新文件下载到你的本地。 Revision:文件版本。这是CVS 中一个需要特别注意

49、的概念,它指的是单个文件的版本,而不是整个项目的版本。基本上,单个文件每次的修改,经过 Commit 之后,它的 Revision都要改变一次,比如从 1.1 到 1.2 到 1.3 等等。特别要注意,单个文件的版本(Revision)与整个工程产品的版本(Version,或者 Release)可以没有任何关系。例如,整个产品现在发行 1.0 版本(Version 1.0)了,但是产品的源代码文件中,有的文件版本(Revision)可能是 1.9, 有的是 2.1,等等。这很容易理解,因为为了发行产品V1.0,我们需要对源代码进行多次修改编译,CVS的安装与使用,CVS的基本概念 Releas

50、e:发行版本。整个产品的版本,例如 VC5.0, VC6.0等。 Tag:标签。在一个开发的特定期,对一个文件或者多个文件给的符号名,一般是有意义的字符串,如“stable”,“release_1_0”等。比如,我们对某个文件的 1.5 版本加上标签:“memory_bug_fixed”,借助这个有意义的标签,我们可以理解 1.5 版本解决了内存 Bug,所以说Tag赋予了版本一些文字含义。 CVSROOT:特定资源库所对应的标识符字符串,通常由CVS服务器所在的主机名字、端口、连接CVS服务器的用户名和密码等信息组成。 WorkSpace(工作空间):开发者存放项目的本地目录 Branch:

51、版本分支,CVS的安装与使用,CVS工作于服务器/客户端模式(Client/Server模式)。 WinCvs是CVS在Windows下的图形客户端(CVS由于是在 Unix下发展起来的,在使用的时候,有很多命令行,命令行中又带很多参数,习惯于 Windows 的读者很难记忆这些命令行和参数。WinCvs 提供了用图形界面使用远程 CVS服务的直观方法。)。它有两个基本工作模式: (1)WinCvs 作为远程 CVS的客户端 在这种工作模式下,第一次使用 WinCvs 的基本流程如下: 1) 您首先要让 CVS 管理员给您分配一个用户名和密码,先使用 WinCvs登录(Login)到CVS服务

52、器。 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仓库目录,它的作用和地位其实就和远程CVS仓库目录一样。 WinCvs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论