首先說一下為什麼要特别寫一個文檔來說明這個層次結構的事情,各位都在eclipse中使用java.io.File類讀取過workspace中的檔案,我相信在不了解eclipse目錄層次結構的情況很少有人可以一次性把路徑給寫對了,為了避免以後再出現這種令人難堪的情況,還是編寫這樣一篇掃盲性的說明文檔比較合适。當然重點絕不是上面的資源路徑怎麼編寫,而是影響圍繞整個工程的生命周期的建構活動。
首先看一下eclipse在預設情況下建立一個普通的Java Project的目錄結構:
從上面可以看出來eclipse在建立一個Java Project的時候會建立一個預設的Source folder名為src,該檔案夾下的所有檔案經過編譯之後會輸出到同級的bin目錄下。關于working set,很好了解,用來分類管理項目工程,你建立的工程主要用來做什麼?屬于什麼類别?考慮完這兩個問題你就知道放置在哪個具體的working set中了。
預設情況下,Package Explorer不顯示working set,這需要将working set作為頂級元素的設定方法如下:
很多人在編寫測試用例的時候喜歡用一個main方法在被測試程式内部中進行測試,如此把測試代碼和生産代碼混合在一起對程式可讀性簡直是毀滅性的打擊,是以還是建立一個專門的測試類吧,測試類的命名最好遵從一定的規範這樣大家都容易識别,建議将被測試類名+Test作為基本測試類的命名規則。關于測試類的存放又是有門道的,很多人喜歡在src下建立一個package叫做test,然後在這裡面存放所有的測試用例。還是那句話,測試類不應該出現在生産環境下,是以還是将測試類放到一個單獨的source
folder下面吧。
下面分享一個建立測試用例的簡便方法:
現在我有一個這樣的類需要進行測試
package cn.seit.eclipse;
public class HelloEclipse {
public static String sayHello(String name) { return "Hello" + name; }
首先在Package Explorer中選中HelloEclipse這個java檔案,然後建立一個JUnit Test Case,eclipse會自動完成下面這些事情:
點選Next,選擇需要測試的方法
完成之後,可以發現被測試類和測試用例的關系如下:
這樣一來兩者之間就建立了一定的對應關系,通過一方可以輕松知道另一方的存放位置。
引用上面将測試用例存放在一個專門的資源檔案夾下的思想,我們同樣可以将工程中産生的配置檔案放置在一個專一的資源檔案夾下。
Java Project釋出一般是通過jar包的方式,我們可以在導出jar的時候做一下輕松設定,就将測試用例從生産環境中脫離了。
上面主要就是講述了一個工程的資源檔案的合理存放位置,用過maven的朋友對這種方式會非常熟悉,因為maven的工程結構就是這樣子的。
Maven提倡使用一個共同的标準目錄結構,使開發人員能在熟悉了一個Maven工程後,對其他的Maven工程也能清晰了解。這樣做也省去了很多設定的麻煩。
以下的文檔介紹是Maven希望的目錄結構,并且也是目錄建立工程是采用的目錄結構。Maven推薦大家盡可能的遵守這樣的目錄結構。
src/main/java
Application/Library sources
src/main/resources
Application/Library resources
src/main/filters
Resource filter files
src/main/assembly
Assembly descriptors
src/main/config
Configuration files
src/main/webapps
Web application sources
src/test/java
Test sources
src/test/resources
Test resources
src/test/filters
Test resource filter files
src/site
Site
LICENSE.txt
Project‘s license
README.txt
Project‘s readme
看,maven的思想還是相當值得借鑒的,使用一個統一的标準目錄層級結構可以為開發者大大降低溝通成本,提高團隊的執行效率。我想在軟體開發整個行業裡面,大家遵循統一的标準對行業的發展會起到一個很好的促進作用,謝謝。
作者:蕭易客
時間:2014/6/4