Tutorial on building a JAVA agile development environment in windows
It is very important to build a programming and development environment. The first step is to build an environment before you can start your work. This document describes how to build a JAVA agile development environment in windows.
The entire software project is divided into four environments: local development environment, development environment, test environment, and IDC environment. Unlike traditional C ++ development, the first local development environment is added. This is why, because most developers are still familiar with windows development. There are few Chinese developers who directly use software in mac and linux and develop it. This architecture is based on the current situation. The following figure shows the environment architecture:
Environment:
1. Development local environment and development Integration Server construction. Front-end developers and backend developers.
Front-end development uses photoshop and dreamweaver most. Most of them won't be co-developed until psd is implemented, but the entire file is passed over. When html is cut, multiple people may collaborate in the development. This requires a centralized ftp server and svn server. The svn server is used to save the version code library, and to save the versions with historical modifications and collaborate with developers. The ftp server can be saved and uploaded to the preview server for preview upon timely modification. Someone may ask, can I directly merge svn and ftp? In fact, if you submit svn directly, the background developers will see it from svn. It was originally integrated and collaborative development preview of the front-end, and the results affect the background, which may cause version confusion.
How to build an environment for background development? Use eclipse to build a development environment in the local environment, and use the tomcat plug-in or jetty to start debugging class and jsp. I have seen many companies publish to the integrated environment through packaging war packages and try again. Integration in the integration environment is prone to version confusion. Even if it is not released to the integration environment, it is a waste of time to restart the war package even if a small class file is modified locally. It is best to use the hot deployment of tomcat, and modify the small function to take effect directly. Now we are doing this. Use maven to manage jar package dependencies, use ant to package and copy packages locally, and use eclipse's tomcat plug-in for hot deployment and rapid development. After all functions are developed. Release the branch version to the development environment for integration testing.
The software involved in the development environment includes nexus, maven, tomcat server, mysql, ftp, jenkins, svn, jira, fisheye, eclipse, dreamweaver, photoshop, and nginx.
The role of the software:
Nexus is used as a centralized repository for management, because it is difficult to manage each project if there are a bunch of jar packages. Adding svn upload, branch, and merge consumes network bandwidth and space. If you manage these waste jar files in a centralized manner, isn't it good to use all the projects together.
Maven is software lifecycle and dependency management. With the centralized management of jar packages, you need something to connect the jar package repository with the project.
The tomcat server is used for local development and centralized testing.
Mysql does not need to be installed on every development machine. It can be placed in a development environment.
Ftp is used as a front-end development and upload file.
Jenkins is continuous integration, and the development and front-end are all done with code. How can we integrate the code and test it together? There is always a need for someone to merge all the files together? This software plays this role, integrating, compiling, packaging, and releasing all files to the tomcat server. For example:
Svn code version management, we all know the synergy.
Jira is used to manage requirements and bugs.
Fisheye is used for code statistics and review.
Eclipse, dreamweaver, and photoshop are not required.
Nginx is mainly used for VM and static resource management. Because we may develop multiple websites at the same time, nginx can forward to different web Servers Based on different domain names.
2. Test the server. Development and testing.
After the development and integration test environment passes, this can be switched to the test. Through continuous integration, test and deploy the environment to start testing. The test environment also depends on the centralized repository, maven, continuous integration, and other software. That is, the integration test environment, the development integration environment, and the development local environment are all using a set of jar packages. Is it cool. If the test fails, it is necessary to switch back to the development, development, and then to the test. How to ensure the quality of development and testing, as well as the collaboration of everyone, this process involves software engineering and performance evaluation, which will be discussed later. The test passes some tests and can be published to the Internet after the test passes. In this case, you need to provide the release list, operation steps, and database operation scripts for O & M review. The release can only be released after the approval.
How can I publish data to an Internet IDC? Operations and Maintenance can be performed based on the release list. Developers and the front-end are waiting to stay up late. No efficiency! Here we propose an incremental release method. Through the release list, our release program will automatically detect the released files and machines and release them to the corresponding servers. If the release fails, you can roll back the file, which is basically a one-click operation. Server restart and log output will be integrated in the future.
Iii. IDC servers.
Real Internet servers, backend servers, and front-end servers. The website server that everyone can access. The business personnel can view the version after it is released. The entire process is complete. After each version is developed, You can collaborate, develop, test, and release it.