2012-10-10 41 views
2

爲了協助我們調試代碼時的能力,我想推薦我們的JAR文件包含源代碼。我想知道可能會導致什麼問題。我的直接想法是,JAR文件會稍大一些。我可以忍受這一點。我還需要考慮其他問題嗎?在JAR文件中包含源代碼有什麼缺點?

TIA

+0

那麼有整個代碼安全的東西,但與反編譯器這幾乎是一個零點。 – thatidiotguy

+0

在某些情況下,jar文件的大小很重要。例如。在沒有.java文件的情況下,服務器上的部署速度會更快。 – sics

回答

4

通常你單獨編譯代碼和源代碼分成兩個不同的罐子。

然後,當需要調試代碼時,您可以將源代碼jar附加到IDE中。

像maven這樣的構建工具很容易爲你做到。

0

java空間中的一些工具將從類路徑(即從jar中)獲取源文件,並執行令人討厭的事情。

通常情況下,你會發現這是如果你添加一個依賴於一個jar這樣做...然後你最終將這些源文件再次編譯到依賴項目中,並捆綁在它的jar中,然後所有classloader地獄破隨着課程從一個來源加載到另一個來源而鬆動。

只是不這樣做。按照Maven的方式(即使不使用Maven)並創建一個單獨的-sources.jar

+0

哪些工具可以做到這一點?這聽起來像FUD對我來說。 –

+0

中央存儲庫中存在一些具有此問題的特定工件。大約每年一次,有人依賴於錯誤的版本,然後當他們嘗試編譯他們的項目時,他們會得到一堆錯誤。我試圖在谷歌上查找,但「包括來源的壞罐子」在前幾頁沒有答案,因此需要拖拽M-L檔案。不FUD,真正的問題。 –

2

我強烈推薦它。我這樣做,所以做一些開源項目(例如jMock,Hamcrest,GWT)。

它可以節省使用獨立源罐的煩惱。這也意味着,如果在將來的某個時候源項目丟失(有時在大型組織中會發生這種情況),維護程序員將不得不重新創建它。

如果你很高興那些有權訪問jar的人可以看到你的源代碼並準備支付jar大小增加的懲罰(並且創建,轉移和部署的時間可能微乎其微)那麼這就是你需要擔心的一切。據我所知,沒有任何其他問題。

僅僅因爲Maven標準將源文件分開並不意味着你必須這樣做。

相關問題