簡體   English   中英

包結構中的非java文件

[英]non-java files in package structure

我們有一個開發人員習慣在我們的存儲庫中的src / java文件夾下的java包中提交非java文件(xsd,dtd等)。 不可否認,這些是該軟件包的相關文件,但我只是討厭在src文件夾中看到非java文件。

這是我應該習慣的常見做法,還是通過維護這些文件來做一些奇怪的事情?

將與代碼緊密相關的非Java(或其他語言)文件放在與代碼不同的位置的問題是知道在哪里找到它們。 可以標准化地點然后理論上每個人都知道去哪里和做什么。 但我發現在實踐中並沒有發生。

想象一下,你的應用程序仍然需要在未來5年或10年內維持一個初級中級開發人員團隊,他們現在不在公司工作,現在永遠不會與任何從事項目工作的人交談。 在源包結構中放置與源緊密相關的文件可以使他們的生活更輕松。

我是在合理范圍內消除盡可能多的含糊不清的主要支持者。

這是非常普遍的,甚至是推薦的,只要它合理。 一般來說,當它是靜態資源(專有格式的DTD + XSLT,預制腳本等)時,它是合理的,但是當文件可能被第三方(如IP /地理位置數據庫轉儲)更新時,它就不合適了。

我認為如果你認為'src'不具體意味着'源代碼'會變得更容易。 可以把它看成是在編譯時和/或運行您的程序所需的實現資源的來源

作為編譯或構建活動的產品的東西不應該在這里。

不可否認,像大多數事情一樣,例外可能適用:)

更新:就個人而言,我喜歡進一步細分src下面的每個資源類型的子目錄。 其他人可能會喜歡更高層次的分工。

有很多jar庫使用相同的實踐。 我認為這是可以接受和舒適的。

在Eclipse中,我們可以很好地擁有一個包含java類的src文件夾,以及一個包含屬性文件等的配置文件夾(有幸作為源文件夾)。然后它們一起進入輸出文件夾,可以在類路徑中找到而仍然在Eclipse內部的單獨文件夾中

將所有輔助文件保留在源旁邊的一個優點是在這些第三方庫和源代碼之間保持版本一致性。 如果您需要返回並調試特定版本,則可以提取整套source + config並使其全部為同一版本。

話雖如此,我將它們放在$project/config/目錄中,或者其他一些,而不是$project/src/java本身。 它們不是源,也不是java,所以它在這個目錄中誤導它們。

但是,當你真正了解它時,這是一個個人風格的問題。 沒有“正確”的答案,您應該與這些團隊成員交談,並了解他們做出此決定的原因。 使用這個線程作為支持單方面決定的證據可能不會很好。 ;)

它很常見,您可以在非常流行的框架中找到它,例如用於彈簧各種模式的xsd文件。 人們通常也會將hibernate映射文件放在與模型類相同的包中。

我認為只要文件是必要的,這就很常見。 當人們開始提交源不需要的文件時會出現問題,例如設計規范或隨機文本文件。

這肯定是常見的,但非常懶惰和草率。 當我看到它時,我的皮膚會爬行。

使用Maven等工具構建產品,可以輕松,清晰地將代碼與資源分開。

Eclipse包可以類似地分開。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM