目录
14 关系: Apache Maven,Apache许可证,Apache软件基金会,单元测试,編譯器,組建自動化,跨平台,软件,软件开发,软件开发工具,软件部署,Jakarta项目,Java,Make。
- Apache软件基金会项目
- Java函式庫
- Java开发工具
- 編譯工具
- 自动化构建
Apache Maven
Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 Maven也可被用于构建和管理各种项目,例如C#,Ruby,Scala和其他语言编写的项目。Maven曾是Jakarta项目的子项目,现为由Apache软件基金会主持的独立Apache项目。.
Apache许可证
Apache许可证(Apache License),是一个由Apache軟件基金會发布的自由软件许可证,最初为Apache http服务器而撰写。Apache许可证要求被授权者保留版权和放弃权利的聲明,但它不是一个反版权的许可证。 此许可证最新版本为“版本2”,于2004年1月发布。 Apache许可证在Apache社区内外被广泛使用。Apache基金会下属所有项目都使用Apache许可证,许多非Apache基金会项目也使用了Apache许可证:据统计,截至2012年10月,在sourceforge上有8708个项目使用了Apache许可证。.
Apache软件基金会
Apache软件基金会(Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非營利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。.
单元测试
在计算机编程中,单元测试(Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。 通常来说,程式設計師每修改一次程式就會進行最少一次單元測試,在編寫程式的過程中前後很可能要進行多次單元測試,以證實程式達到軟件規格書要求的工作目標,沒有程序錯誤;雖然单元测试不是什么必须的,但也不坏,這牽涉到專案管理的政策決定。 每个理想的测试案例独立于其它案例;为测试时隔离模块,经常使用stubs、mock或fake等测试马甲程序。单元测试通常由软件开发人员编写,用于确保他们所写的代码符合软件需求和遵循开发目标。它的實施方式可以是非常手動的(透過紙筆),或者是做成構建自動化的一部分。.
編譯器
编译器(compiler),是一種電腦程式,它會將用某種程式語言寫成的原始碼(原始語言),轉換成另一種程式語言(目標語言)。 它主要的目的是將便于人编写、阅读、维护的高级计算机语言所寫作的原始碼程式,翻译为计算机能解读、运行的低阶机器语言的程序,也就是執行檔。编译器将原始程序(source program)作为输入,翻译产生使用目标语言(target language)的等价程序。源代码一般为高阶语言(High-level language),如Pascal、C、C++、C# 、Java等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。 一个现代编译器的主要工作流程如下: 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 執行檔(executables), 最後打包好的檔案就可以給電腦去判讀執行了。.
組建自動化
组建自动化(Build automation,又称构建自动化、自动化构建)指自动创建软件组建的一组进程,包括将计算机源代码编译成、將二进制码包装成软件包以及运行自动化测试。.
跨平台
跨平台泛指编程语言、软件或硬件设备可以在多种作業系統或不同硬體架構的電腦上運作。.
软件
軟體(software)是一系列按照特定顺序组织的電腦数据和指示,是電腦中的非有形部分。電腦中的有形部分稱為硬體,由電腦的外殼及各零件及電路所組成。電腦軟體需有硬體才能運作,反之亦然,軟體和硬體都無法在不互相配合的情形下進行實際的運作。 一般来說,计算机软件划分为程式語言、系统软件、应用软件和介于这两者之间的中介軟體。其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。 软件包括所有在電腦執行的程式,和其架構無關,例如執行檔、函式庫及腳本語言都屬於软件。軟體不分架構,有其共通的特性,在執行後可以讓硬體執行依設計時要求的機能。軟體儲存在記憶體中,軟體不是可以碰觸到的實體,可以碰觸到的都只是儲存軟體的零件(記憶體)或是媒介(光碟或磁片等)。 软件并不一定只包括可以在计算机上运行的電腦程式,有些定義中,与電腦程式相关的文档,一般也被认为是软件的一部分。简单的说软件就是程式加文档的集合体。软件被应用于世界的各个领域,对人们的生活和工作都产生了深远的影响。.
软件开发
软件开发(Software development)是根据用户要求建造出软件系统或者系统中软件部分的一个产品开发的過程。软件开发是一项包括需求获取、开发规划、需求分析和设计、编程实现、软件测试、版本控制的系统工程。换句话说,软件开发就是一系列最终构建出软件产品的活动。软件开发可能包括研究、新的开发工作、修改、复用、重新设计(再工程)、维护,或者任何最终获得软件产品的其他活动。尤其是在软件开发过程的初始阶段,其中可能会涉及许多的部门,包括市场营销、工程设计、研究与开发以及一般意义上的管理 Joseph M.
软件开发工具
软件开发工具(software development tool,或programming tool)为软件开发服务的各种软件和硬件。 软件开发工具根据在不同软件开发生命周期中起到的作用可以分为:.
软件部署
软件部署(英语:Software deployment)是为将一个软件系统投入使用而进行的所有活动,包括硬件配置、软件的安装、环境变量设置等。在一些机器上批量安装某一程序也称为软件部署。.
Jakarta项目
Jakarta项目是在Apache軟件基金會营运的开放源代码开发项目之一。开发着面向对象编程语言Java的程序库,框架等。 Jakarta是Apache组织下的一套Java解决方案的开源软件的名称,它包括了很多子项目。Tomcat、Ant、Struts等等現在是Apache下的开源项目,也曾是Jakarta的关联项目。 Jakarta的名称与印度尼西亚的首都雅加达(Jakarta)并无直接关系,实际上它是根据Sun Microsystems公司当时讨论创建这个项目时的会议室命名的。.
Java
Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,广泛应用于企业级Web应用开发和移动应用开发。 任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初开发Java語言的雛形,最初被命名为Oak,目標設定在家用电器等小型系統的程式语言,應用在电视机、电话、闹钟、烤面包机等家用电器的控制和通訊。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代網際網路的发展,Sun公司看見Oak在網際網路上应用的前景,于是改造了Oak,於1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的-zh-hans:指针; zh-hant:指標;-,改以-zh-hans:引用; zh-hant:參照;-取代,同時移除了C++中的--和多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。昇陽電腦对Java语言的解释是:「Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言」 Java不同於一般的编译語言或直譯語言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的執行速度有了大幅提升。 与传统型態不同,Sun公司在推出Java時就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司後來推出了与之竞争的.NET平台以及模仿Java的C#语言。後來Sun公司被甲骨文公司併購,Java也隨之成為甲骨文公司的產品。 現時,行動作業系統Android大部分的代碼採用Java 程式設計語言編程。.
Make
在软件开发中,make是一个工具程式(Utility software),經由讀取叫做“makefile”的文件,自動化建構軟體。它是一種转化文件形式的工具,转换的目标称为“target”;与此同时,它也检查文件的依赖关系,如果需要的话,它会调用一些外部软件来完成任务。它的依赖关系检查系统非常简单,主要根据依赖文件的修改时间进行判断。大多数情况下,它被用来编译源代码,生成结果代码,然后把结果代码连接起来生成可执行文件或者库文件。它使用叫做“makefile”的文件来确定一个target文件的依赖关系,然后把生成这个target的相关命令传给shell去执行。 許多現代軟體的開發中(如Microsoft Visual Studio),集成开发环境已經取代make,但是在Unix環境中,仍然有許多工程師採用make來協助軟體開發。.
另见
Apache软件基金会项目
- Apache ActiveMQ
- Apache Ant
- Apache Avro
- Apache Axis
- Apache Axis2
- Apache CXF
- Apache Camel
- Apache Cordova
- Apache Derby
- Apache Flex
- Apache HBase
- Apache HTTP Server
- Apache Hadoop
- Apache Hive
- Apache Maven
- Apache Mesos
- Apache OpenOffice
- Apache POI
- Apache Shiro
- Apache Spark
- Apache Struts 2
- Apache Tomcat
- Apache Velocity
- Apache ZooKeeper
- Apache可移植运行时
- Cassandra
- CouchDB
- Giraph
- Kafka
- Lucene
- NetBeans
- OpenNLP
- Solr
- SpamAssassin
- Subversion
- Tapestry
- Thrift
- Traffic Server
- UIMA
- Wicket
Java函式庫
- Apache Ant
- Apache CXF
- Apache Commons
- Apache Harmony
- Apache POI
- Apache Shiro
- Apache Velocity
- Batik
- Checkstyle
- Deeplearning4j
- Echo (架構)
- Gson
- IText
- JavaFX
- Lucene
- MARF
- OpenJDK
- OpenNLP
- Qt Jambi
- SLF4J
- SWT
- XStream
- 博尔尼塔开源解决方案
- 格式化对象处理器
- 面向Java对象查询
Java开发工具
- Akka
- AnyLogic
- Apache Ant
- Apache Maven
- Checkstyle
- Eclipse
- FindBugs
- GCC
- Gradle
- Hudson (软件)
- IntelliJ IDEA
- JBuilder
- JUnit
- Jenkins (软件)
- J♯
- KDevelop
- NetBeans
- Pack200
- ThreadSafe
- Visual Cafe
- Visual Studio Code
編譯工具
- Apache Ant
- Apache Maven
- Automake
- CMake
- Flex詞法分析器
- GNU bison
- GNU构建系统
- Gradle
- Hudson (软件)
- Jenkins (软件)
- Lex
- Libtool
- Make
- Meson
- Qmake
- SCons
- Waf
- Yacc