2013-11-26 66 views
2

我目前正在計劃使eclipse成爲一個插件,並且它的一個功能需要我能夠阻止某些代碼。在Eclipse中隱藏/限制/保護代碼

即,如果一個人設置它以便代碼A被阻止,那麼人員2不能更改任何代碼,並且如果人員隱藏代碼人員兩個不能看到代碼,但它仍然應該工作。 所以它應該仍然編譯,即使人二不能看到/改變一個人寫的代碼人。

任何人都知道這是否可以使用eclipse插件?如果是的話,任何想法如何?我目前正在學習如何製作插件,如果有人指出我的方向正確,那將是一個巨大的幫助。

謝謝。

+0

這聽起來像一個可怕的要求。爲什麼會有人想要這個? –

+1

基本上它用於教學,所以老師不希望學生訪問重要的代碼,這可能是某些事情的答案。 – Ramis

回答

0

您可以查看Mylyn的隱藏部分Task-Focused UI的源代碼。

但如果有空間思考本身的要求:

  • 檢查多遠,你可以有鎖定的SCM工具機制
  • 拆分項目獲取和引進的依賴,而不源
  • 注意編譯的Java類總是可以被反向工程到一定程度

[更新]

選項1:

爲您的使用情況下,我認爲你應該保持簡單:

  • 使用混淆
  • 只提供二進制文件(JAR或類文件)+ JavaDoc的

選項2:

  • 你可以嘗試引入編譯預處理步驟/自定義生成器解密源 (右鍵單擊項目:屬性>建築商)

[注]這讓我想起回我自己學習的時間。有一項任務是實施一個AI,通過一個最初未知的迷宮找到方法。當然,有一個捷徑:通過Java Reflections即時探索。從學生身上隱藏某些東西,可以讓他們對導致遠離原始任務的錯誤事物感到好奇。但它可能是一種找到有才華的方法。 :-)

+0

我正在考慮提供二進制文件,但這意味着它對於每種不同的語言都是不同的。如果有一種代碼用於任何語言的方式會更好。 – Ramis

+0

我的另一個想法是用戶選擇讓第2-5行顯示,而隱藏文件的其餘部分。 我可以提取這3行,然後加密實際的文件。編譯時,我可以插入他們可能已經修改的3行,並將它們插入到文件中。我只是不確定一個插件是否可以做到這一點? – Ramis

+0

那麼你想在編譯之前解密源代碼。那麼,這個目標是構建工具鏈。這仍然依賴於語言。 –

0

你可以把你想保護的代碼放到一個庫中,並將它作爲一個二進制jar文件部署到另一個團隊中嗎?鑑於java反編譯器有多好,這遠非完美,但也許它就足夠了?

這是信任還是安全問題?如果這是一個不信任某些團隊成員的代碼的問題,那麼您是否可以不在代碼存儲庫中強制執行某些操作。例如,在我們的SVN倉庫中,我們不允許在沒有相應票據#的情況下提交代碼。