[英]What are the best practices for naming ant targets?
命名螞蟻目標的最佳做法是什么?
例如,您希望目標“測試”運行什么? 所有單元測試? 所有功能測試? 都?
用於運行不同類型的測試(單元/功能/全部)的標准名稱是什么? 是否有用於在J2SE中部署軟件的目標名稱的標准? 在J2EE中?
我的項目將ant用於具有junit,Swing應用程序和J2EE應用程序的Java項目。
以下目標是許多版本的共同目標。 始終避免更改眾所周知的目標名稱的行為。 您無需在單個項目中實現所有這些功能。
all Build and test everything; create a distribution, optionally install.
clean Delete all generated files and directories.
deploy Deploy the code, usually to a remote server.
dist Produce the distributables.
distclean Clean up the distribution files only.
docs Generate all documentation.
init Initialize the build: create directories, call <tstamp> and other common actions.
install Perform a local installation.
javadocs Generate the Javadoc pages.
printerdocs Generate printable documents.
test Run the unit tests.
uninstall Remove a local installation.
此頁面還提供其他良好指導。
對於我的Java項目,我使用Maven默認生命周期中定義的名稱作為基礎。 對於其他項目,我也使用了GNU autoconf標准目標 。
有一種標准被合理地廣泛使用。 不能從命令行調用以-字符開頭的任何目標名稱,因此,肯定是一個不能直接執行的目標名稱。 有時,這被稱為隱藏目標 。
只要它們在您的整個項目中都是可理解的且一致的,您就可以將它們命名為您。 簡單,簡短的動詞通常是規范,目標應在邏輯上分解。
您可以按照Matt B建議的路線,按類型命名測試目標:
或者,例如,如果您具有Junit,Selenium和Webtest功能測試,則可以按工具命名:
如果對要向任何開發項目的人員公開的目標使用description屬性,則用戶可以執行ant -p
列出可用目標並選擇所需的目標。 與目標的實際名稱相比,此處的有用描述對於用戶而言可能更重要,也更有價值。
從螞蟻手冊 :
可選的description屬性可用於提供此目標的單行描述,該描述由-projecthelp命令行選項打印。 除非使用-verbose或-debug選項,否則沒有這種描述的目標將被視為內部目標,並且不會列出。
我們在簡短而簡明的目標名稱(使用依賴於其他單個任務的名稱)方面取得了良好的經驗。 AFAIK的通用標准集是
(雖然找不到鏈接)
對我們來說效果很好。
當我們必須區分測試類型時,我們將它們分別命名為“ test.data”和“ test.nondata”以分離測試類型,“測試”任務將它們分別作為依賴。 也許您應該按照另一個用戶的建議使用“ java方法命名約定”,但是恕我直言,沒關系。
如果您是在本地計算機上手動運行ant腳本(我會測試是否破壞了構建腳本),那么只需輸入以下內容便會派上用場
ant dist
ant test report
代替
ant compile create.distribution
ant test.data test.nondata report.junit.generate report .....
我認為這完全是個人喜好,但我會使用
test
-用於單元測試 test-integration
-用於集成測試 dbtest
用於數據庫測試(如果它們包含在上面的項目中) test-all
以運行以上所有內容 另外,我對使用test
或復數形式tests
,我可能在不同的項目上都做過。
ant目標的命名約定應與Java方法的命名約定非常相似:即,簡單地描述目標的作用。
這是來自Sun標准的方法命名摘錄:
命名方法
盡管方法名稱可以是任何合法標識符,但是代碼約定限制了方法名稱。 按照慣例,方法名稱應為小寫的動詞或以小寫的動詞開頭的多詞名稱,其后是形容詞,名詞等。在多詞名稱中,第二個單詞及其后每個單詞的第一個字母應該大寫。 這里有些例子:
run runFast getBackground getFinalData compareTo setX isEmpty
可能最大的區別在於ant目標的樣式,它應該是所有小寫字母,單詞之間用破折號隔開。
例如,以下目標對我來說似乎很合適:
run-all-tests
build
clean
test-and-release
deploy
run-code-coverage-metrics
最后,嘗試使用與命名方法時相同的判斷。 如果您的目標清晰,描述性強並且易於理解,那么您的狀態就很好。
有關該主題的更多詳細信息,請查看Ant Wiki上的Ant 風格元素 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.