Java developers are often looking for ways to write Java code faster and make programming easier. Currently, more and more efficient programming tools are emerging on the market. So, here’s a list of tools that most developers have used, are currently using, or will definitely use in the future. This list includes integrated development environments, integration tools, testing and quality tools, etc.
1. Integrated development environment
Eclipse is the most famous and widely used Java integrated development environment (IDE ), allowing developers to combine language support and other features into any default package, and the Eclipse Marketplace has many custom and extension plug-ins.
#IntelliJ has aroused the "sought after" of developers, even more popular than Eclipse, with free and professional versions. [IntelliJ](http://www.javacodegeeks.com/tutorials/java-tutorials/core-java-tutorials/#IntelliJ IDEA) provides framework-specific coding assistance and productivity-improving functions for many Java EE frameworks. It also There are deployment tools for most application servers.
NetBeans also belongs to the IDE category, allowing developers to quickly and easily develop desktop applications, mobile applications and Web applications. NetBeans is free and open source and has a global community of users and developers.
JDeveloper is a free integrated development environment provided by Oracle. It provides complete end-to-end development for Oracle Fusion middleware and Fusion application products, supporting the entire development life cycle. .
2. Test
JUnit is a Java language unit test framework for writing and running repeatable test. It provides assertions for testing expected results, test fixtures for shared common test data, and test runners for running tests. You can take a look at the JUnit tutorial here.
TestNG was developed inspired by JUnit, but it also has some new features, so relatively speaking, TestNG is more powerful and easier to use, such as annotations ( annotations), flexible test configurations, data-driven testing and parameter support, and a powerful execution model. It covers unit testing, functional, end-to-end, integration testing, and supports various tools and plug-ins (Eclipse, IDEA, Maven, etc.). For specific content, please refer to the articles on using Maven Failsafe and TestNG for unit testing and integration testing respectively.
Mockito is a mocking framework that helps developers write beautiful tests with a concise API. Its tests are very readable and produce clear validation errors. Using Mockito you can also query the interaction after execution. Mocks are transparent, so developers can focus on testing selected behaviors. For more details, please refer to mockito’s related articles.
Arquillian is a testing platform for Java and JVM, focusing mainly on integration and functional testing. It removes unit testing and focuses on the interaction of program code in a real real-time environment. Arquillian comes equipped with container lifecycle management and typical test curation for testing.
3. Integration
#Apache Maven is a very famous software project management and integration tool. Based on the concept of Project Object Model (POM), its information center manages the construction, reporting and documentation of the project. Maven provides a unified build system, project information and best development practice guidance, and supports transparent migration of new features.
Gradle is an open source automated build system. Gradle can automatically build, test, publish, and deploy a variety of software packages or other types of projects, such as generating static websites. Gradle combines the power and flexibility of Ant with the dependency management and conventions of Maven to form an efficient way to build.
Apache Ant is an open source Apache project released under the Apache Software License. It consists of a variety of built-in tasks that allow developers to write, assemble, test and run Java applications. It is characterized by being highly flexible and does not strictly restrict the coding conventions or directory layout of Java projects.
Apache Ivy is a popular dependency management tool that focuses on flexibility and simplicity. It is a sub-project of the Apache Ant project and Ivy is used to resolve project dependencies. External XML files define project dependencies and list the resources required to build the project. Ivy then downloads resources from the artifact repository, which has good flexibility and configurability. Apache Ivy is integrated by Apache Apache Ant, so the dependency management advantages of Apache Maven will also be brought to the Apache Ant build file, providing convenience for developers who already use Apache Ant and do not want to migrate to Apache Maven.
4. Application Server
#Apache Tomcat is an open source Web server and Servlet container developed by the Apache Software Foundation Developed by ASF. It implements several Java EE specifications, including Java Servlet, JavaServer Pages (JSP), Java EL, and WebSocket, providing an HTTP web server environment that can run Java code. To learn more please click.
WildFly, formerly JBoss AS or Jboss, is an application server developed by Jboss and is now developed and maintained by Red Hat. It is written in Java and implements the Java Platform and Enterprise Edition (Java EE) specifications. WildFly is a free and open source tool that runs on multiple platforms.
GlassFish is an open source application server project started by Sun Microsystems' Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Application Server. GlassFish is free software, approved under two free software licenses: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL).
Oracle WebLogic Server is a Java EE application server currently developed by Oracle. It is used to build and deploy enterprise applications Java EE, supporting reduced operating costs, improved performance, enhanced New features such as scalability and support for Oracle Application Portfolio.
5. Web application testing
Apache JMeter is an open source Apache project. It is actually a load-based Functional testing and performance testing of Java applications. It was originally designed for use with web applications, but has now been expanded to other testing capabilities. It can test static and dynamic resource performance, simulate one or more server loads to test its strength or analyze overall performance under different load types. You can view more details about Jmeter.
#SoapUI is a free and open source cross-platform functional testing solution. It provides a graphical interface and enterprise-grade functionality that allows the creation and execution of automated functional, regression, compliance and load tests. SoapUI provides complete test coverage in a test environment and supports all standard protocols and technologies.
6. Quality Analysis
SonarQube is an open source platform that has become the world of code quality management system A leader and known for its continuous inspection of code quality. In addition to Java, it also supports most languages and can be used for Android development. It integrates most continuous integration tools. SonarQube generates reports for duplicate code, coding standards, unit testing, code coverage, complex code, potential bugs, comments, design, and architecture.
FindBugs is also an open source tool, released under the Lesser GNU Public license. It runs on Java bytecode rather than source code and can identify and determine the severity of potential errors such as null pointer references, infinite recursive loops, incorrect use of Java libraries and deadlocks. At the same time, it can also be used as a plug-in for Eclipse, NetBeans, and IntelliJ IDEA. You can refer to the FindBugs Eclipse example.
PMD is a source code analyzer. It detects common programming errors such as unused variables, empty catch blocks, unnecessary object creation, and more. It supports most languages including Java, as well as CPD and copy-paste detectors.
Checkstyle is a development tool that can help programmers adhere to writing Java code according to coding standards and automatically start Java code checking. It is highly configurable and can support almost any coding standard.
7. Version control
#Apache Subversion is a well-known SVN tool and a software version and version control system , released under an open source license. Currently, it is developed as a project of the Apache Software Foundation and is part of a global community of developers and users.
#Git is a free and open source distributed version control system that can improve the speed and efficiency of large and small transactions. Compared with other configuration management tools, Git is characterized by providing cheap local branches, convenient staging areas and multiple workflows. Each Git working directory is a complete version repository, with complete history and complete version tracking capabilities, independent network access or central server. You can view more Git articles.
8. Continuous Integration
Jenkins is an award-winning application capable of monitoring repetitive work, From setting up a software project to a job run by cron. Its basic function is to continuously build and test software projects, making it easier for developers to integrate changes into the project and for users to get new builds more easily. Jenkins can also monitor the execution of externally run tasks, such as cron jobs, even if they are running on a remote computer.
Apache Continuum is an enterprise-level continuous integration server. Features include automated builds, release management, role-based permissions management, and integration with other popular build tools and source code management systems.
#Hudson is a continuous integration (CI) tool written in Java and runs on an application server. It supports various SCM tools, such as Subversion, Git, and can execute Apache Ant and Apache Maven projects, as well as arbitrary shell scripts and Windows batch commands. It monitors the execution of repetitive tasks, such as building a software project or jobs run by cron.
9. Java application analysis
YourKit Java Analyzer is the technology leader in developing the most innovative intelligent tools for analyzing Java applications. You can use YourKit solutions for both CPU and memory analysis, and analyze large applications with maximum productivity and zero overhead. At the same time, Java Analyzer also has several newly proposed analysis innovations, which have gained it well-deserved popularity among professional Java developers in various large and small enterprises.
JProfiler is a commercially licensed Java profiling tool that is very effective for analyzing performance bottlenecks, memory leaks, CPU load and solving threading problems. It supports running on the same machine or Perform analysis on a remote machine. Users can see a visual representation of total active bytes, instances, threads, classes, and garbage collector activity. It can be used as a stand-alone application or as a plug-in for the Eclipse software development environment.
10. Code Coverage Tool
JaCoco is an open source toolkit for measuring and reporting Java code coverage. It is licensed under the Eclipse Public License and is currently the only byte code coverage tool that supports Java 8.
Clover is a commercial code coverage tool that provides indicators that allow programmers to better balance programming and testing. It runs under an IDE or your continuous integration system and includes test optimizations that speed up testing.
11. Bug tracking
JIRA is a tracking tool that helps teams plan and build excellent products. Thousands of teams choose JIRA to capture and organize issues, assign work, and track team activities. It is a paid tool, but there is a 7-day free trial.
Trac is a complete wiki and issue tracking system developed for software development projects, managing Web software projects in the simplest way. It can also help developers write excellent software, providing interfaces to Subversion and Git (or other version control systems), integrating wikis and convenient reporting programs. Trac allows wikis to tag in issue descriptions and commit messages, and also creates links and seamless references between bugs, tasks, changes, files, and pages.
12. Document generation tool
Javadoc is an API used by Oracle to generate HTML format from Java source code Document generation tool. IDE can automatically generate HTML code. Many file editors help users generate Javadoc sources and use Javadoc information as an internal reference for programmers. Javadoc also provides APIs for creating doclets and taglets, allowing you to further analyze the structure of Java applications.
Document! It automatically integrates the generated documentation into Java IDEs, and can also generate documentation pages for libraries, namespaces, classes, interfaces, constructors, methods, properties and fields.
The above is a collection of efficient Java programming tools. For more related content, please pay attention to the PHP Chinese website (www.php.cn)!