1.Eclipse
尽管IntelliJ IDEAãNetBeansåä¸äºå ¶ä»çIDEæ£å¨æ¥çæ®åï¼ä½æ¯æè°æ¥è¡¨æï¼Eclipseä»ç¶æ¯å ä¹åæ°Javaå¼å人åé¦éçå¼åç¯å¢ã Eclipseæ¯IDEé¢åçç士ååï¼æç大éå®å¶çæ¥å£åæ æ°çæ件ãå®æ å¤ä¸å¨ï¼åé¢æ¬æå°æ¨èçå ¶ä»ææå·¥å ·é½æä¾Eclipseæ件ã
Eclipseçå·¥ä½æµç¨å¯å为ä¸ä¸ªæ¹é¢ï¼å·¥ä½å°ï¼å·¥ä½ç©ºé´åè§è§ãå·¥ä½å°ä½ä¸ºå°IDEçåºåç¹ãå·¥ä½ç©ºé´å°é¡¹ç®ãæ件åé 置设置ç»åå¨ä¸ä¸ªåç¬ç ç®å½ä¸ãè§è§å®ä¹å·¥å ·ãè§å¾åææ设置ãè½ç¶æ°æå¼å人åå¯è½ä¼è§å¾ç¸æ¯NetbeansåIntelliJ IDEAï¼Eclipse使ç¨èµ·æ¥æ´é¾ï¼ä½Eclipseççµæ´»æ§ï¼ä½¿å ¶æ为ä¼ä¸å¼åçé¦éIDEã
Lunaï¼Eclipseçææ°çæ¬ï¼æ¯æJava 8ãåå±ç¼è¾ãæ°çé»è²ä¸»é¢ï¼ä»¥åä¸ä¸ªåè½é½å ¨çå½ä»¤è¡ç»ç«¯ã
2.Gradle
Gradleæ¯ä¸ä¸ªèªå¨å项ç®å·¥å ·ï¼å»ºç«å¨Apache MavenåApache Antçåè½ä¸ãè½ç¶Gradle并ä¸æ¯ææµè¡çæå»ºå·¥å ·ï¼ææµè¡çæ¯Mavenï¼64ï¼ çJavaå¼å人åä¼éæ©å®ï¼ï¼ä½å®çæ®åé度å¾å¿«ãå®ä¹å¯ä½ä¸ºé»è®¤çAndroidæå»ºå·¥å ·ã
Gradleå¼ä»¥ä¸ºå²çæ¯å®çç®åãGradle使ç¨Groovyç¼ç¨è¯è¨ï¼ä¸MavenåAnt使ç¨XMLè¯æ³æªç¶ç¸åãä¸ä¸ªåºæ¬çGradleæ建æ件ç±ä¸è¡ç®åç代ç ç»æï¼
apply plugin: 'java'.
ä¸é¢çå½ä»¤ä¼çæä¸ä¸ªGradleæ建æ件ï¼å建项ç®æ件çç®å½æ ï¼å¹¶é带ä¸ä¸ªé¡¹ç®ä¾¿æºå¼Gradleå°è£ ï¼
$ gradle init --type java-library
Gradleè¿æå¯ç¨äºæ·»å æ°çè¯è¨ï¼çææ¯æIDEç项ç®æ件ï¼æ建æ¬å°äºè¿å¶ææ¡£ï¼æ£æ¥ä¾èµæ§æ´æ°çççæ件ã
æ³è¦äºè§£æ´å¤ä¿¡æ¯ï¼è¯·åè§GradleçJava / JVMå ¥é¨æåã
3.Javadoc
Javadocæ¯Oracleæä¾çææ¡£çæå¨ãå®å¯ä»¥å°ç¹æ®æ ¼å¼ç注é解æ为HTMLææ¡£ã以ä¸æªå¾å°±æ¯JavadocçæçJava SE 8 APIè§èï¼
Javadoc注é使ç¨å¼æ¾æ ç¾ãå ³éæ ç¾ï¼ä»¥åä¸ä¸ªæå¤ä¸ªæè¿°æ§æ ç¾çæ ¼å¼ãå¼æ¾å¼æ ç¾ç±»ä¼¼äºæ åJavaå¤è¡æ³¨éæ è®°ï¼ä½¿ç¨ä¸¤ä¸ªæå·çé¤å¤ãJavadocä¹è§£ææ®éçHTMLæ ç¾ã
Javadocèªå¨æ ¼å¼åæ ç¾åå ³é®åï¼é¤éå¦æè§å®ãJavadoc广æ³ä½¿ç¨è¶ é¾æ¥ï¼å è®¸ä½ åèåé¾æ¥å°ä»£ç çä¸ååºåã许å¤IDEââå æ¬ Eclipseââå¯ä»¥èªå¨æ·»å Javadoc注é模åå°åéãç±»åæ¹æ³ä¸ãæ¯æMavenãGradleåAntçæ件å¨ç¼è¯ä»£ç çåæ¶ä¹å¯ä»¥æ建 Javadoc HTMLã
æ³è¦äºè§£æ´å¤ä¿¡æ¯ï¼è¯·åé Oracleå ³äºå¦ä½ä¸ºJavadocå·¥å ·åæ档注éçæç« ã
4.JUnit
JUnitæ¯ç¨äºç¼ååè¿è¡åå æµè¯çå¼æºæ¡æ¶ãä¸ä¸ªåºæ¬çJUnitæµè¯å æ¬æµè¯ç±»ãæµè¯æ¹æ³ã以åæ§è¡æµè¯çåè½ã JUnit使ç¨æ 注æ¥ç¡®å®æµè¯å¦ä½æé åè¿è¡ãä¾å¦ï¼å¦æä½ çç¨åºæä¸ä¸ªç±»å«åMathClassï¼å ·æä¹æ³åé¤æ³çæ¹æ³ï¼ä½ å¯ä»¥å建JUnitæµè¯æ¥æ£ æ¥ä¸ç¬¦åé¢æçå¼ãè¾å ¥æ°å2å5å°ä¹æ³æ¹æ³ï¼ä½ å¸æå¾å°çç»æ为10ãå½è¾å ¥0ä½ä¸ºé¤æ³æ¹æ³ç第äºä¸ªåæ°æ¶ï¼ä½ ä¼ææç»åºä¸ä¸ªæ°å计ç®å¼å¸¸çè¦åå ä¸ºé¤ æ°ä¸è½ä¸º0ï¼
@Testæ 注è§å®ï¼MathClassæ¹æ³æ¯ä¸ä¸ªæµè¯ç¨ä¾ã å¨JUnitæä¾é¢å¤çæ 注ï¼æ¯å¦@Beforeï¼è¿æ ·ä½ å°±å¯ä»¥å¨æµè¯è¿è¡ä¹å设置ç¯å¢ã JUnitè¿å¯ä»¥è®¾ç½®è§åç¨äºå®ä¹æµè¯æ¹æ³çè¡ä¸ºãä¾å¦ï¼TemporaryFolderè§å使å¾ä¸æ¦æµè¯å®æï¼ç±æµè¯å建çæ件ææ件夹就ä¼è¢«å é¤ã
æ³è¦äºè§£æ´å¤ä¿¡æ¯ï¼è¯·åèJUnitå ¥é¨ã æ¤å¤è¿æ使ç¨JUnitåå æµè¯çæç¨ã
5.Cobertura
Coberturaå¯ç¨äºåæJava代ç çæµè¯è¦ççãCoberturaæ ¹æ®æ²¡æ被æµè¯è¦çç代ç çæåºäºHTMLçæ¥åã
Coberturaæä¾å¯ç¨äºæè£ ãæ£æ¥åæµè¯ä»£ç çå·¥å ·ãéè¿çæ§å¯æµè¯ç代ç ï¼Coberturaå è®¸ä½ ä½¿ç¨ä½ éæ©çæµè¯æ¡æ¶ï¼çè³ä¸éè¦æµè¯æ¡æ¶å°±å¯ä»¥è¿è¡ç¨åºã
Coberturaæ ¹æ®è¡ãåæ¯åç¨åºå ä¸ä¸ªæ¹é¢ç»åºä»£ç è¦çæ¥åãæ¯ä¸ªç±»å«é½æä¸ä¸ªå¯èªå®ä¹çéå¼ï¼å¦æè¦çé¢ä½äºéå¼ï¼å°±ä¼è§¦åè¦åãCoberturaè¿éæäºMavenåGradle çèªå¨æ£æµåè½ã
Mkyong.comæä¾äºä¸ä¸ªå°Coberturaä¸Mavenæ´åç示ä¾ã
6.FindBugs
FindBugsæ¯ä¸ä¸ªå¹é ç¼è¯ä»£ç 模å¼ï¼èé使ç¨bugæ°æ®åºçå·¥å ·ãå½æä¾æºä»£ç æ¶ï¼FindBugsè¿å¯é«äº®æ¾ç¤ºæ£æµåºbugç代ç è¡ã
å¨å®ç3.0.1çæ¬ä¸ï¼FindBugs继ç»ä¿æçæ°ä»¥ç¾è®¡çbugæè¿°ãæ ¹æ®bugç严éç¨åº¦ï¼FindBugså°bugå为å个水平ï¼ç¸å ³ çï¼ä»¤äººå°æ°çï¼å¯æçï¼ä»¥åæå¯æçãé¤äºå¾å½¢ç¨æ·çé¢ï¼FindBugsè¿æä¾ä¸ä¸ªå½ä»¤è¡çé¢ï¼Antä»»å¡ï¼ä»¥åEclipseæ件ã
7.VisualVM
å å«å¨JDKä¸çVisualVMæ¯çæ§å审æ¥Javaåºç¨ç¨åºæ§è½çå·¥å ·ã VisualVMæ£æµå¹¶éè§æ´»è·çJVMå®ä¾æ¥æ£ç´¢æå ³è¿ç¨çè¯æä¿¡æ¯ã
VisualVMå¯ä»¥å¾å®¹æå°å®æ¶è¯ææ§è½é®é¢ãå®æä¾äºå ¨å¥çåæå·¥å ·ï¼å æ¬JConsoleãjstackãjmapãjinfoåjstatçãæ¤å¤ï¼ä½ è¿å¯ä»¥å¯¹JVMåä¸ä¸ªå¿«ç §ï¼è¿æ ·ä»¥åå¨ä»»ä½æ¶é½è½å®¡æ¥ã
8.Groovy
Groovyæ¯ä¸ç§ç¼ç¨è¯è¨ï¼éè¿æ·»å æ°çå ³é®åï¼èªå¨å¯¼å ¥å¸¸ç¨çç±»ï¼ä»¥åå¯éç±»ååé声æï¼æ¢ç®ååæ©å±äºJavaã