NetBeans 于7月30日发布了 9.0 正式版,不过作为 Apache
基金会开源项目的它目前尚处于孵化阶段。

集成开发环境

无论你是刚入门,还是进行了一段时间的开发,使用合适的工具编程都会让你事半功倍,它能够让你更快的编写代码,能够快速及时的为你识别出Bug,能够让你的代码质量更上一层楼。

自测试版发布以来,最常见的问题就是:Java EE / C ++ / PHP
是否支持?首先,Apache 的源代码捐赠仅包括基本 NetBeans 平台模块和 Java
SE 支持(详情可以查看 Apache Foundation
官方声明),这是否意味着我们无法在
NetBeans 9 上开发 Java EE 应用程序?并非如此!

Eclipse是最有名也最广泛使用的Java集成开发环境(IDE),允许开发者结合语言支持和其他功能到任何的默认包中,而且Eclipse市场有许多定制和扩展的插件。

如果你选择的编程语言是Java,那么从编码、测试到服务器集成、文档,你都可以找到专注于开发的每个方面的工具。现在,让我们来挑选其中的佼佼者吧。

目前,Oracle 已经进行了第二次捐赠,其中包括大多数被视为扩展模板的
NetBeans 模块。 正如 Apache 声明所暗示的那样,这些模块预计会在未来的
NetBeans 版本中出现。

IntelliJ已经引起了开发者的“追捧”,甚至比Eclipse还受宠,有免费版和专业版。IntelliJ为众多Java
EE框架提供了针对框架的编码帮助和提升生产效率的功能,还有大多数应用服务器的部署工具。

Java编辑器与开发

澳门新葡萄京官网首页 1

1.Java开发工具包(JDK)

对于任何计划开发小程序和应用程序的人来说,JDK都是必不可少的工具。它包括Java运行时环境、Java编译器和Java
API。换句话说,它拥有从Java初学者到经验丰富的程序员所需要的一切东西。

2.NetBeans

在讨论Java最受欢迎的IDE时,NetBeans总是会被人所提及。作为一个开源的工具,它拥有以下强大的功能:

支持多种语言

包含丰富的插件。比如用于Java和PHP的ResinTemplateModule,可用于开发iOS、Android和Windows本地化Java应用程序的插件,
CSS minifier等等

澳门新葡萄京官网首页,开箱即用的Git和Maven集成

帮助分析和修复代码中错误的调试器和配置文件

3. Eclipse IDE

Eclipse
IDE是另外一个广受欢迎的IDE,有54%的Java开发人员使用。和NetBeans一样,它也是开源的,同时也有大量的插件和可定制的接口。它还拥有许多其它特性,比如代码实现辅助、语法检查和重构等。

4. Groovy

Groovy不是一种编辑器,而更像一种编程语言,它通过添加新关键字以及自动导入常用类和可选的变量声明来扩展Java的功能。它还提供了强大的脚本功能,支持你将类编译为Java字节码,者通过Groovy
Shell动态地执行它们。

是否可以在 NetBeans 9 中启用 Java EE 支持?

官方已经提供在 NetBeans 9 中启用 Java EE
支持的方法:使用工具包。因此,本教程的重点是在
MacOS 上启用 Java EE 支持,Linux 和 Windows
的步骤应该相同。为了显示一些附加说明,我们使用 Java 8 和 Java 10
测试了两个应用服务器。

NetBeans的也属于IDE类,允许开发者快速、简便地开发桌面应用、移动应用和Web应用。NetBeans是免费开源的,还拥有全球性的用户和开发者社区。

测试

澳门新葡萄京官网首页 2

1. Mockito

Mockito作为一个模拟框架,支持你创建和使用简化版本的对象和过程,以实现自动化单元测试。由于它简单而干净的API以及在程序执行后可以提问的特点,许多程序员非常青睐它。Mockito还可以:

模拟具体的类和接口

提供干净的验证错误

允许你指定顺序以进行灵活的验证

支持精确次数和至少一次的验证

2. JRat

JRat(Java Runtime Analysis
Toolkit)是Java平台的性能分析器。它可以监视应用程序的执行以及对持续性能进行测量,并支持你通过JRat桌面应用程序查看和分析数据。此外,你还可以使用它来识别可能影响应用程序性能的潜在问题区域。

3. JUnit

JUnit是一个可以让你一次测试一个代码块的单元测试工具。换句话说,你不必等到完成全部代码才来测试它。特性包括:

用于测试预期结果的断言

共享通用测试数据的测试装置

用于运行测试的测试运行器

下载 NetBeans 9.0

首先,从官方 Apache Mirrors 下载 NetBeans 包。 目前,发行版仅以 .zip
格式文件提供:

澳门新葡萄京官网首页 3

下载后,解压 .zip 文件:

unzip incubating-netbeans-java-9.0-bin.zip

在 Unix 的 bin/ 目录中找到 NetBeans 可执行文件:

cd netbeans

bin/netbeans

有了这个,我们就可以运行 NetBeans 9。默认情况下,NetBeans
将在系统可用的最新 JVM 上运行。

澳门新葡萄京官网首页 4

JDeveloper是Oracle提供的一个免费的集成开发环境,它为Oracle融合中间件和融合应用产品提供完整的端到端开发,支持整个开发生命周期。

集成

澳门新葡萄京官网首页 5

1. Apache Ant

该工具由Apache开发,它为你提供了内置的任务,这些任务不仅有助于开发、编译和测试Java应用程序,还能帮助自动化完成重复的任务。

2. Apache Maven

有超过68%的Java开发人员青睐的Maven是一个项目管理构建工具,它提供了统一的构建系统、质量项目信息和最佳实践开发指南。Maven的主要特性包括:

遵循最佳实践的简单项目设置

优越的依赖关系管理,包括自动更新和依赖闭包

能够同时轻松地处理多个项目

一个庞大且不断增长的库和元数据存储库

用Java或脚本语言编写的可扩展插件

3. Gradle

Gradle是一个构建自动化的系统,它包含了软件包以及其它类型项目的自动化构建、测试和部署。它结合了ANT的最佳特性以及Maven优越的依赖关系管理,使你能够更好地使用这两个工具特性,更舒适的编写代码。

启用 Java EE 支持

要安装 Java EE 支持,应将 NetBeans 8.2 更新中心存储库添加到 IDE。

首先,点开 Tools > Plugins > Settings。

然后,添加新的更新仓库:

  •  澳门新葡萄京官网首页 6

    第三,使用关键字“Kit”搜索新插件。
    顾名思义,这些是用于特定目的的插件集合。

    澳门新葡萄京官网首页 7

    根据经验,建议进行 Java EE 开发使用以下插件:

    • HTML5 Kit

    • JSF

    • SOAP Web Services

    • EJB and EAR

    • RESTful Web Services

    • Java EE Base

    现在,重新启动 IDE,然后,准备使用 Java EE 开发应用程序。 

    测试1:Wildfly 13

    为了测试 NetBeans 设置,我添加了一个新的应用程序服务器(WildFly
    Application Server),并从 jEspañol 演示文稿中运行了 Java EE 8
    REST-CRUD
    应用程序。

    选择 WildFly Application Server

    澳门新葡萄京官网首页 8

    正如

    NetBeans 9 将检测域配置:

    澳门新葡萄京官网首页 9

    WildFly 团队一直致力于保持 Java 9 和 10 兼容性。
    因此,应用程序会按预期运行,以从内存数据库中提供新记录。

    澳门新葡萄京官网首页 10

    测试2:Java 10(NetBeans)和 Java 8(App Server 平台)上的
    Glassfish 5 和 Payara 5

    为了测试 Vanilla 体验,我尝试连接 Payara 和 Glassfish 5
    应用服务器(Application Server)。 在 WildFly
    的情况下,配置非常简单:

    选择 Payara Application Server:

    澳门新葡萄京官网首页 11

    域1默认配置应该没啥问题:

    澳门新葡萄京官网首页 12

    由于 Payara 和 Glassfish 仅支持 Java 8(对 Java 11
    的支持已在路线图中),因此您必须使用 Java 8 创建一个新平台。转到
    Tools -> Java
    平台,然后单击添加平台(Add Platform)。

    澳门新葡萄京官网首页 13

    现在,选择一个新的 Java SE 平台:

    澳门新葡萄京官网首页 14

    选择 Java 8 的主目录:

    澳门新葡萄京官网首页 15

    最后,转到服务器属性并更改 Java 平台:

    澳门新葡萄京官网首页 16

    此时,NetBeans 应该在 Java 8
    上运行。否则,您将无法检索服务器的配置和日志(

    测试3:Java 8(NetBeans)和 Java 8(App Server 平台)上的
    Glassfish 5 和 Payara 5

    最后,我将 NetBeans 配置为使用 JDK 8 作为 NetBeans JDK。编辑
    etc/netbeans.conf 文件并将 netbeans_jdkhome 变量指向 JDK
    8。因为我使用 jenv 来管理 JVM
    环境,所以正确的值是:netbeans_jdkhome=”/Users/tuxtor/.jenv/versions/1.8″。

    有了这个,NetBeans 9 就能按预期运行 Payara 5 和 Glassfish 5。

    澳门新葡萄京官网首页 17

    目前尚不确定 TomEE,OpenLiberty,WebSphere 和 WebLogic
    这几个服务器的使用情况,但这似乎是一个与 JDK 版本有关的问题。

    编译自:Java EE/Jakarta EE Support for NetBeans
    9

    (文/开源中国)    

测试

安全

澳门新葡萄京官网首页 18

1. FindBugs

正如名称所示,该工具通过将文档与已知错误的数据库相匹配来帮助识别代码中的错误。它可以作为一个独立的GUI,也可以作为包括Eclipse和NetBeans在内的许多代码编辑器的插件。

2. SonarQube

SonarQube支持你访问整个平台来分析代码的bug和漏洞。功能包括:

关于重复代码、编码标准、单元测试、代码覆盖率、复杂代码、潜在bug等的报告

与大多数持续集成工具集成

多语言支持

JUnit是一个Java语言的单元测试框架,用于编写和运行可重复的测试。它为测试预期结果提供断言,为共享的常用测试数据提供测试装置(test
fixtures),以及运行测试的测试者(test
runners)。可以在这里看一下千锋教育官网的免费教程。

服务器

澳门新葡萄京官网首页 19

1. Apache Tomcat

Apache Tomcat是最流行的web服务器之一。它实现了一系列Java EE规范,如Java
Servlet、JavaServer Pages(JSP)、Java
EL和WebSocket。它还提供了运行代码的HTTP服务器环境。

2. WildFly

WildFly是由Red
Hat开发的,另外一种流行的web服务器。它实现了Java平台的企业版功能,你可以在上面访问任意平台上的企业功能。

 

TestNG是受到了JUnit的启发开发而成,但同时还具有一些新功能,所以相对而言,TestNG更加强大也更便于使用,如注解(annotations)、灵活的测试配置、数据驱动的测试和参数支持,以及强大的执行模型。它涵盖了单元测试、功能、端到端、集成测试,支持各种工具和插件(Eclipse、IDEA、Maven等)。具体内容可以参考分别使用
Maven Failsafe与 TestNG进行单元测试与集成测试的文章。

Mockito是一个mocking框架,帮助开发者编写具有简洁API的精美测试。其测试的可读性很好,并能产生清晰的验证错误。使用Mockito还能在执行后可以对交互进行问询。Mocks是透明的,所以开发者可以专注于测试选定的行为。更多详情可以参考mockito的相关文章。

Arquillian是一个Java和JVM的测试平台,主要侧重于集成和功能测试。它去掉了单元测试,重点关注真正实时环境下的程序代码的相互作用。Arquillian为测试配备了容器生命周期管理和典型测试精选。

集成

Apache
Maven是一个非常著名的软件项目管理和综合工具。基于项目对象模型(POM)的概念,它的信息中心管理着项目的构建、报告和文档。Maven提供了一个统一的构建系统、项目信息和最佳的开发实践指导,并且支持新功能的透明迁移。

Gradle是一个开源的自动化构建系统。Gradle可以自动构建、测试、发布、部署,还有多种软件包或其他类型项目,如生成静态网站。Gradle结合了Ant的能力和灵活性,以及Maven的依赖管理和约定,形成了一种高效的构建方式。

Apache
Ant是一个开源的Apache项目,经Apache软件许可发布。它由多种内置任务而成,允许开发者编写、装配、测试和运行java应用程序。它的特点是高度灵活,不会严格限制Java项目的编码惯例或目录布局。

 

Apache Ivy是一种流行的依赖管理工具,注重灵活性和简单性。它是Apache
Ant项目的一个子项目,而Ivy用来解决项目依赖项。外部的XML文件定义项目依赖项,并列出构建项目的所需资源。然后Ivy从artifact存储库(artifact
repository)中下载资源,它具有良好的灵活性和可配置性。Apache
Ivy是由Apache Apache Ant集成的,因此将使Apache
Maven的依赖管理优势也带到Apache Ant构建文件中,为那些已经使用Apache
Ant且不想迁移到Apache Maven的开发者提供了便利。

应用服务器

Apache
Tomcat是一个开源的Web服务器和Servlet容器,由Apache软件基金会(ASF)开发。它实现了几个Java
EE规范,包括Java Servlet、JavaServer Pages(JSP)、Java
EL和WebSocket,提供了一个可以运行Java代码的HTTP
Web服务器环境。想要了解更多请点击。

WildFly,其前身是JBoss
AS或Jboss,是一个由Jboss开发的应用服务器,现在由红帽在开发维护。它是用Java编写的,并且实现了Java平台和企业版(Java
EE)规范。WildFly是可以在多个平台上运行的免费开源工具。

GlassFish是由Sun Microsystems的Java
EE平台起步,现在由Oracle公司赞助的开源应用服务器项目。支持的版本叫做Oracle
Glassfish应用服务器。
GlassFish是免费软件,经两个免费的软件许可证批准:通用开发与发布许可(CDDL)和GNU通用公共许可证(GPL)。

Oracle WebLogic服务器是一个Java
EE应用服务器,目前由Oracle公司开发,用于构建和部署企业应用Java
EE,支持降低运营成本、提高性能、增强可扩展性和支持Oracle应用组合等的新特性。

Web应用测试

Apache
JMeter是开源的Apache项目,实际上是一个专为负载功能测试和性能测试的Java应用。它最初的设计是用于Web应用,但现在已扩展到其他测试功能。它可以测试静态和动态资源性能,模拟一个或多个服务器负载来测试它的强度或者分析不同负载类型下的整体性能。可以查看关于Jmeter的更多详情。

SoapUI是一个免费的开源跨平台的功能测试解决方案。它提供了一个图形界面和企业级功能,允许创建和执行自动化功能、回归、符合性和负载测试。SoapUI在一个测试环境下提供了完整的测试覆盖率,而且支持所有的标准协议和技术。

质量分析

SonarQube是一个开源的平台,现已成为代码质量管理系统的世界领先者,并且因代码质量的持续检查为众人所知。除了Java外,它还支持大多数的语言,而且可以用作Android开发,它集成了大多数的持续集成工具。SonarQube会为重复代码、编码标准、单元测试、代码覆盖、复杂代码、潜在错误、注释、设计和架构而产生报告。

FindBugs也是开源的工具,在Lesser GNU Public
license许可下发布。它运行在Java字节码上而不是源代码,可以识别和确定潜在错误的严重程度,如空指针引用、无限递归循环、Java库和死锁的错误使用。同时,它还可以作为Eclipse、NetBeans,IntelliJ
IDEA的插件。可以参考FindBugs Eclipse实例。

PMD是一个源代码分析器。它可以检测到常见的编程错误,如未使用的变量、空的catch块、不必要的对象创建等等。它支持除了包括Java的大多数语言,还包含CPD、复制粘贴探测器。

Checkstyle的是一个开发工具,可以帮助程序员坚持按编码标准来编写Java代码,会自动启动Java代码检查。它的配置性很强,能支持几乎任何的编码标准。

版本控制

Apache
Subversion是众所周知的SVN工具,是一个软件版本和版本控制系统,在一个开源许可下发布。目前,它是由一个Apache软件基金会的项目开发,也是全球性开发者和用户社区的一部分。

Git是一个免费开源的分布式版本控制系统,能够提高大小事务的速度和效率。相对于其他的配置管理工具,Git的特色在于提供廉价的局部分支、便利的暂存区和多个工作流。每个Git工作目录是一个完整的版本库,有完整历史和完整版本的跟踪能力、独立的网络接入或中央服务器。可以查看更多Git的文章。

持续集成

Jenkins是一个屡获殊荣的应用程序,能够监视重复的工作,从建立一个软件项目到由cron运行的作业。它的基本功能是不断建立和测试软件项目,使得开发者能更容易地将变更集成到项目中,使用户更容易获得新的构建。Jenkins还可以监控外部运行任务的执行,如cron
jobs,即使是运行在远程计算机上的任务。

Apache
Continuum是一个企业级持续集成服务器。提供的特性包括:自动构建、发布管理、基于角色的权限管理,以及能与其它流行构建工具和源代码管理系统相集成。

Hudson是一个用Java编写的持续集成(CI)工具,在应用服务器上运行。它支持各种SCM工具,如Subversion、Git,可以执行Apache
Ant和Apache
Maven项目,以及任意shell脚本和Windows批处理命令。它监视重复任务的执行,如建立一个软件项目或由cron运行的作业。