




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java构建和管理工具SDK(软件开发工具包)软件开发工具包(Software Development Kit)是指开发人员利用特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合例如:Android SDKJava SE SDKJava EE SDK百度地图SDK新浪微博SDK微信SDK常见的集成开发平台IDEEclipse跨平台的开源、可扩展集成开发环境;插件体系结构;NetBeansJava集成开发环境;完整支持Java EE标准;IntelliJ IDEA(Android Studio)JetBrains公司的产品;主要支持Java软件开发;无需鼠标即可完成大部分
2、开发任务;IDE效率较快;智能提示丰富;Visual StudioWindows平台开发工具,支持C+,C#等的开发;XcodeApple公司的Mac OS X,iOS平台开发工具。IDE 平台不是软件开发的唯一选择基于命令行的开发优势:保证开发的软件可以适应异构系统、不依赖特定IDE平台、实现更好的可移植性、灵活高效、自定制环境Linux/Unix/Mac基于命令行的工具命令行工具find例如:find . -name “*.java”,find . -print | sed -e s;/*/;|_;g;s;_|; |;ggrep 例如:find . -name *.java | grep
3、-n Hello编辑器viemacs 编译、构建、管理工具gcc g+ gdbjavac java jar javadocmake ant maven gradle Tree命令tree L 3 README.txt bin asadmin asadmin.bat pkg pkg.bat updatetool updatetool.bat docs api firstcup javaee-tutorial glassfish bin common config docs domains legal lib modules osgi index.html javadb 3RDPARTY bin
4、index.html lib samples README.html batch cdi concurrency connectors docs ejb el index.html jsf jsonp platform pom.xml rest servlet websocketWindows系统使用Unix命令CygwinA large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows.MinGWMinimalist GN
5、U for Windows常用Linux命令介绍(一)命令说明ls显示指定工作目录下的内容dir同ls命令,方便DOS用户使用cd变换工作目录pwd显示当前活动目录的绝对路径clear清屏命令man查看指令、配置文件的帮助信息,相关信息:help、info、FAQ、internetmkdir创建新目录rmdir删除空目录常用Linux命令介绍(二)命令说明rm删除文档和目录touch创建一个空白文件或改变已有文件的时间戳cp复制文件(或者目录等)mv移动目录或给文件改名ln创建软链接、硬链接chmod修改文件或目录的权限chown修改文件或目录所属的用户chgrp修改文件或目录所属的工作组常用
6、Linux命令介绍(三)命令说明more分屏显示文件内容,按空格向文件末尾翻页,按b键向文件首部翻页,按h查看帮助less分屏显示文件内容,按j、k进行上下翻页显示,按h查看帮助head显示文件前10行内容tail显示文件后10行内容cat适合显示短小文件,或者将几个文档连接利用重定向符定向到输出文档常用Linux命令介绍(四)命令说明find在指定的路径上搜索指定的文件和目录which查找命令、别名等路径whereis查找命令的路径、帮助信息路径grep过滤、查找文件中的内容,或指定输入、输出的文件中的内容。find命令find语法:find 搜索路径 参数选项 匹配表达式 功能:在指定的搜
7、索路径下搜索指定的目录或文件。参数:-name 字符:查找的包包“字符”的文件和目录。-perm 模式: 匹配所有符合指定数值模式值的文件。-size nc:匹配大小为n个block的文件名,c:以字节为单位-user 用户名:搜索所有属主为用户名的文件。-group 组名:搜索所有属主为组名的文件。-atime n:搜索在n天前访问过的文件。-mtime n:搜索在n天前状态修改过的文件。-ctime n:搜索在n天前修改过的文件。-exec 命令 ; :对每个匹配的文件执行该命令,标志用于指定命令执行时文件名出现的地方,命令必须终止于符号“;”。例如:查找所有空文件并将其删除。find /
8、 -size 0 exec rm rf ;grep命令选项选项说明-A num输出匹配行后的num行-B num输出匹配行前的num行-n在输出行前标出行号-f FILE从文件中读入表达式。-v反向查找,即寻找并显示所有不含指定字符串的内容-s不输出错误信息#查找以#开头的行conf$查找以conf结尾的行$查找空行-E接收扩展grep的正则表达式条件grep语法:grep 参数选项 -e PATTERN | -f FILE FILE.说明:在文件中搜索匹配的行并输出,一般用来过滤先前结果而避免显示太多不必要的信息。软件开发中常用的构建工具MakeMakefileLinux平台核心编译辅助工具
9、,在C或C+项目中广泛使用Make把自己和操作系统绑定在一起,不能实现跨平台,对java来说不友好Antbuild.xml与Make功能类似,Ant构建脚本为build.xmlMavenpom.xmlMaven不仅是构建工具,还是依赖管理工具和项目信息管理工具,它提供了中央仓库,能帮助开发者自动下载构件Gradlebuild.gradle基于Ant和Maven概念的项目自动化建构工具,基于Groovy的特定领域语言声明项目设置,而不是传统的XMLJavaEESDK使用了命令行构建工具bin/工具集docs/API文档和教程glassfish/JavaEE服务器javadb/JavaDB数据库s
10、amples/Java EE 7 SamplesREADME.txt说明文档index.html安装后指南结论:JavaEESDK(及JavaSESDK)中包含的所有例子均支持命令行构建工具:ant、maven或gradle。archetypes/case-studies/cdi/common/concurrency/connectors/ejb/jaxrs/jaxws/jms/persistence/security/web/pom.xml (支持基于Maven的项目构建)JavaSE JavaEE例子Demos、samples内容丰富,例如:Your First Cup: An Intro
11、duction to the Java EE Platform位置:java_ee_sdk-7u2/docs/firstcupThe Java EE 7 Tutorial位置:java_ee_sdk-7u2/docs/javaee-tutorialmvn cargo:start; mvn cargo:deploy; mvn cargo:undeploy; mvn cargo:stop; mvn cleanEnsemble8(JavaSE)位置:jdk-8u65-macosx-x86_64-demos/demo/javafx_samples/src/Ensemble8ant -Dplatform
12、s.JDK_1.8.home=$JAVA_HOME cleanant -Dplatforms.JDK_1.8.home=$JAVA_HOME jarjava -jar dist/Ensemble8.jarJava开发工具集目标:完成构建、测试、发布和其他诸如软件打包、生成注释文档等功能AntMavenGradle先决条件JDK 安装完成解压文件分别解压apache-ant-1.9.3-bin.zip,apache-maven-3.1.1-bin.tar.gz和gradle-1.10-all.zip到c:tools目录下c:tools可以是任意一个开发软件的目录按照自己的习惯方式,目录名字最好不
13、要有空格,不要用中文Ant设置设置环境变量ANT_HOMEc:toolsant在Path变量后增加%ANT_HOME%binMaven设置设置环境变量MAVEN_HOMEc:toolsmaven在Path变量后增加%MAVEN_HOME%bin设置环境变量MAVEN_OPTS-Xms256m -Xmx512m(根据计算机内存情况)Gradle设置设置环境变量GRADLE_HOMEc:toolsgradle在Path变量后增加%GRADLE_HOME%bin检验安装正确性ant vmvn vgradle -vAnt的由来随着应用程序的生成过程变得更加复杂,确保在每次生成期间都使用精确相同的生成步
14、骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本,这就变得更加重要了。 C 或 C+ 中的传统项目经常使用 make 工具来做这件事情,其中生成任务是通过调用 shell 命令来执行的,而依赖关系定义在每个生成文件之间,以便它们总是以必需的顺序执行。 简单的说,Ant是一个基于Java,并且主要用于Java工程的构建工具。Ant本意是Another Neat Tool,也就是另一种整洁的工具,取首字符就是Ant。 Ant的优点Ant类似于C中的make,但比make优越。现在存在的大多数Build工具,如make、gnumake、nmake、jam等都存在这样或那样的不足,比如依赖于特
15、定的平台、配置文件过于复杂或者对格式无法检查而容易出错等。与这些工具相比较,Ant的两个特性决定了它是一款优秀的Build工具: (1)基于Java的实现:具有良好的跨平台性。 (2)基于XML的配置文件:Ant以XML树来描述Target/Task的关系,文件结构清晰、易读易写,并且利用XML对格式的控制来避免由于配置文件的错误造成的Build操作失败。Ant构建文件的核心概念XML:构建文件是以XML文件来描述的。 陈述式语法:构建文件短小精悍,且易于理解。 每个构建文件包含一个工程(project)。 每个工程包含若干个目标(target)。 目标可以依赖于其他的目标(depends)。
16、 目标包含任务(task)。 易于使用 Java语言增加新的任务易于扩展(自定义)。 Ant的基本概念基于Java 的makefile基于Java的开放源码构建工具Ant的功能包括项目编译,打包,部署等通过配置一个XML文件快速开发创建和部署过程使用buildfile(如build.xml)来完成一系列操作一个流程脚本引擎,用于自动化调用程序完成项目的下列任务:编译、打包、测试、调用系统命令(exec)优点平台无关的基于XML,比make脚本好维护Buildfile文件以XML文件来描述的陈述式语法。每个构建文件包含一个工程(project)。每个工程包含若干个目标(target)。目标可以依
17、赖于其他的目标(depends)。目标包含任务(task)。Build.xmlbuild.xml文件的结构 运行Ant运行Ant非常简单,当你正确地安装Ant后,只要输入ant就可以了。可以指定执行一个或多个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,执
18、行一个叫做dist的target。ant -buildfile test.xml -Dbuild=build/classes dist使用当前目录下的test.xml运行Ant,执行一个叫做dist的target,并设定build属性的值为build/classes。 使用ant运行ant命令行模式下到buildfile所在目录ant -buildfile/-f 文件名 目标如果需要指定buildfile,则加入-buildfile或-f参数查阅antdocant使用帮助:安装目录docsindex.htmlant任务介绍一个典型的build.xml文件构建文件的概念视图:工程包含一个目标的集
19、合。在每个目标里是任务的声明,目标生成一个依赖关系图表来声明该目标的依赖关系。当执行一个目标时,必须先执行它们依赖的目标。一个典型的build.xml文件 该构建过程如下: 系统初始化1、编译 2、生成JAVADOC 4、打包 5、上传到FTP,其中后两步结合到一起叫部署。执行时输出如下: ant -propertyfile perties Buildfile: build.xml init: mkdir Created dir: /home/ant/Projects/OurProject/build/classes mkdir Created dir: /home/ant/Projects/
20、OurProject/dist compile: javac Compiling 1 source file to /home/ant/Projects/OurProject/build/classes doc: javadoc Generating Javadoc javadoc Javadoc execution javadoc Loading source files for package org.example.antbook.lesson1. javadoc Constructing Javadoc information. javadoc Building tree for al
21、l the packages and classes. javadoc Building index for all the packages and classes. javadoc Building index for all classes. deploy: jar Building jar: /home/ant/Projects/OurProject/dist/project.jar ftp sending files ftp 1 files sent BUILD SUCCESSFUL Total time: 5 seconds. 在执行时使用命令行参数以传入一个属性文件(pertie
22、s),属性文件中包含连接FTP服务器使用的服务器名,用户名,用户密码来给特性使用。属性文件例子:perties内容server=user=rootpassword=123这个例子很好的展示了Ant的一些基本要素:目标依赖、特性的使用、编译、文档生成、JAR打包(tar,Zip,WAR,EAR等),最后是部署。 Ant的核心任务()都是由Java类库来实现相应的功能。而一些复杂的任务、还需要第三方库的支持。 Ant使用实例ant helpant complieant runant buildant clean从命令行运行 Ant从命令行执行的 Ant 生成任务的一些典型输出:Buildfile:
23、 build.xmlinit:mkdir Created dir: E:tutorialsantexamplebuildmkdir Created dir: E:tutorialsantexampledistcompile:javac Compiling 8 source files to E:tutorialsantexamplebuilddist:jar Building jar: E:tutorialsantexampledistexample.jarBUILD SUCCESSFULTotal time: 2 secondsAnt中的属性Ant 中的属性类似编程语言中的变量,它们都具有名
24、称和值。然而与通常的变量不同,一经设置,Ant 中的属性就不可更改;它们是不可变的,就像 Java 语言中的 String 对象。例:生成文件的其他部分引用属性语法:$metal例如:Ant中的DataTypeDataType可以很自然的处理构建过程中的文件和路径问题常见的DataType:Environment环境Fileset文件集Patternset模式集Filterset过滤集Path路径定义依赖关系生成一个项目一般需要许多步骤 例如首先要编译源代码,然后将它打包为 Java 归档文件(Java Archive File,JAR)。每个目标的定义依据的是在它在能够执行之前必须完成的其他
25、所有目标。使用 target 元素的 depends 属性来实现的。例如:定义依赖关系例子中,如果让 Ant 完成 package 步骤,则依赖图如下: 注意目标出现在生成文件中的顺序并不重要:执行顺序是由depends 属性唯一确定的。initcompilepackageclean编译源码javac任务(1)Javac任务其它有用属性:classpath:等价于 javac 的 classpath 选项。debug=“true”:指示编译器应该带调试信息编译源文件。编译源码javac任务(2)引入jar包添加到classpath中创建 JAR 文件在编译 Java 源文件后,使用打包.man
26、ifest 属性允许指定一个用作该 JAR 文件的清单的文件. 时间戳生成tstamp任务一般在init目标中调用最简单的格式在调用 tstamp 任务之后,我们能够根据日期命名该 JAR 文件,如下所示: 如果这个任务在 2007年 4月 1 日调用,该 JAR 文件将被命名为package-20070401.jar。创建目录首先要注意 / 被用作目录分隔符,这是 UNIX 和 Linux 的惯例。同样可以使用 ,而不管平台是什么 Ant 能够处理任一种形式,甚至能够处理两种形式的混合。mkdir 任务的另一个有用特性是它的如下能力:在父目录还不存在时创建它们。删除目录这将删除指定的目录连同
27、它包含的所有文件以及子目录。使用 file 属性而不是 dir 属性可以指定要删除的单个文件。复制和移动文件及目录在 Ant 中制作文件的一份拷贝很简单。例如:您还可以使用 move 来执行重命名操作而不是拷贝文件:文件复制或移动到另一个目录创建和解压缩 zip 及 tar 文件zip 文件的 Ant 任务:创建 tar 文件:解压缩和提取文件:制作java文档javadoc任务文件集fileset(部分任务支持)可以使用include、exclude特性示例单元测试集成到Ant中执行test.util.ServeTestIDE 集成由于 Ant 的普及性,大多数现代 IDE 现在都集成了对它
28、的支持,其他许多 IDE 则在插件提供对它的支持。受支持的环境列表包括 JEdit 和 Jext 编辑器、Borland JBuilder、IntelliJ IDEA、JavaDevelopment Environment for Emacs (JDEE)、NetBeans IDE、Eclipse 。Eclipse集成了Ant功能Eclipse中已经集成了Ant,可以直接在Eclipse中运行Ant,利用Ant插件来生成一个构建文件。点击导航栏的Window-Preferences-Ant在Eclipse中自动生成Ant Build文件选择工程,右单击选择“ExportAnt Buildfil
29、e”。在“File Name”框中,输入build.xml,并且点击Finish 。Using the Ant view 用Outline来查看,编写build.xml的结构。运行ant的buildfile文件方式一:在build.xml右键菜单上选择Run As Ant Build 。方式二:在build.xml右键菜单上选择Run As Ant Build. 会弹出对话框来设置运行的参数。获取Ant帮助文档查阅antdocant使用帮助:安装目录docsindex.htmlant任务介绍参见Eclipse帮助文档Maven是什么Maven这个词翻译为“知识的积累”,也可以翻译成“专家”或“
30、内行”。Maven是一个项目管理工具提供了构建工具所提供功能的超集。 Maven官网:Maven vs. AntAnt是构建工具,仅关注预处理,编译,打包,测试和分发Maven是项目管理工具,除了构建外,还能:1.运行报告2.生成站点3.标准化,便于项目成员之间交流,知识积累4.高度重用Maven和Ant比较Ant的不足Ant 没有正式的约定如一个一般项目的目录结构需要明确的告诉Ant想让它做什么开发者对 Ant 的感受是用 XML 编写程序语言Ant 没有生命周期,必须定义目标和目标之间的依赖Maven的特色Maven 拥有约定,如果遵循约定,它已经知道源代码在哪里。 Maven 是声明式的
31、。 Maven 有一个生命周期,Maven 执行一系列的有序的步骤,直到到达指定的生命周期。Maven 可以运行许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。 Maven优势一致 允许组织将一系列项目标准化重用 重用最佳实践敏捷 不仅仅重用构建逻辑,同时重用组件维护 避免编写构建脚本Maven的内涵Maven是一个项目管理工具,它包含:一个项目对象模型 (Project Object Model)一组标准集合一个项目生命周期(Project Lifecycle)一个依赖管理系统(Dependency Management System)一个软件,用来运行定义在生命
32、周期阶段(phase)中插件(plugin)目标(goal)的逻辑。Maven的基础知识-依赖的特点传递性依赖ABC传递性引发的问题比如有如下依赖关系:a-b-c-x(1.0)、a-d-x(2.0),那么哪个x包会被maven解析?还是两个包都会被解析?比如有如下依赖关系:a-b-x(1.0)、a-c-x(2.0),那么哪个x包会被maven解析?还是两个包都会被解析?依赖原则路径优先原则第一声明优先原则Maven的基础知识-传递依赖的关系第二直接 依赖CompileTestProvidedRuntimeCompileCompile-RuntimeTestTest-TestProvidedPr
33、ovided-ProvidedProvidedRuntimeRuntime-Runtime第一直接依赖ABC第一依赖第二依赖POM(项目对象模型)Pom.xml是Maven的最主要的配置文件 4.0.0 com.mycompany.app example jar 1.0-SNAPSHOT Javaero junit junit 3.8.1 test project-pom.xml顶层元素modelVersion-POM版本groupId-组IDartifactId-工件IDpackaging-构建的包类型. JAR, WAR, EARversion-工件的版本name-名称,主要用于文档url
34、-项目站点.description-描述.Maven项目概念模型特征依赖管理远程仓库 全局性构建逻辑重用 工具可移植性/集成 像 Eclipse,NetBeans,和 InteliJ 这样的工具现在有共同的地方来找到项目的信息。Maven 标准化了这种描述,而虽然每个IDE 仍然继续维护它的自定义项目文件,但这些文件现在可以很容易的由模型生成。 便于搜索和过滤构件 允许你使用存储在 POM 中的信息对仓库中的内容进行索引和搜索。Maven构建C:my-app mvnMaven 内部运行依赖/工件/库 : junit junit 3.8.1 test :依赖如何实现?JAR包在哪?Maven生命
35、周期process-resourcescompileprocess-classesprocess-test-resourcestest-compiletest prepare-packagepackage创建项目c: mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-appmy-app|- pom.xml- src |- main | - java | - com | - mycompany | - app | - App.java - test - java - com - mycompany - app - AppTest.javaMaven目录结构介绍src/main/java源代码目录src/main/resources所需资源目录src/main/filters资源过滤文件目录src/main/assembly自定义打包目录src/main/config配置文件跟目录src/main/webappWeb文件目录src/test/java测试代码目录src/test
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二手音响回收合同标准文本
- 公路设备运输合同标准文本
- 信托法合同范例有些
- 债劝转让合同范例
- 其他房产转让合同样本
- 保险采购合作合同标准文本
- 书约稿合同样本
- 光优合同样本
- 市场营销信息系统应用试题及答案
- 化学材料合成与反应机制试题及答案
- 2025-2030中国融资租赁行业发展分析与投资战略研究报告
- 2024年北京市统计局招聘事业单位考试真题
- 2025年“铸牢中华民族共同体意识”应知应会知识竞测试赛题
- 2025年四川宜宾三中高三二模高考数学模拟试卷(含答案)
- 入职培训测试题及答案
- 境外项目合作居间协议书范本
- 网格员矛盾纠纷培训
- 2025年河南经贸职业学院单招职业技能测试题库学生专用
- GB/T 1346-2024水泥标准稠度用水量、凝结时间与安定性检验方法
- 2024年襄阳汽车职业技术学院高职单招职业技能测验历年参考题库(频考版)含答案解析
- 医疗机构性侵防护制度与措施
评论
0/150
提交评论