2010-09-23 76 views
0

我正在尋找一個庫,它可以簡化將代碼的各個部分從一個項目複製到另一個項目的過程。不需要複製屬於同一文件的代碼的某些部分。我意識到存在一些代碼生成器,這些代碼生成器能夠以編程方式從頭開始生成生成的代碼,但是我正在尋找一個庫,使我能夠在別處生成手動編碼的代碼。Java:用於簡單源代碼重新創建/複製的庫

我寧願一個基於註釋的工具,它將使我「標籤」的類/文件/包,我想複製。事情是這樣的:

@CopyCode 
class Foo { 
    ... 
} 

File destinationDirectory; 
... 
new CodeCopier().copyAllAnnotatedFiles(destinationDirectory); 

,或者至少是這樣的:

Package package; 
... 
new CodeCopier().copyPackage(package, destinationDirectory); 

預期的行爲: 其中包含「標籤」的代碼應該複製到目標目錄中的文件的源代碼(是另一個Java項目),並保持所有的目錄/包結構。

有什麼圖書館在這裏會有幫助嗎?

如果沒有,你有什麼建議,我應該如何實現自己的「碼複印機」,並會派上用場什麼庫?

回答

5

如果您只想複製文件 - 不要這樣做。將它們移動到一個庫中,並將該庫用於不同的項目。

如果需要修改,而複製的代碼,我建議FMPP。在這裏,您可以從一些自定義屬性定義模型,並訪問模型值以將它們插入要複製的模板中。我使用這種技術來創建具有相同結構的新項目,並將項目名稱和其他單個屬性插入到生成的代碼中。

+1

+1 - 這是100%的目標。我會補充說,如果你只是稍微修改代碼 - 例如更改變量值等,我建議仍然創建一個庫並抽象出代碼以允許將這些變量設置或添加到調用中。 Martin Fowler的重構是所有這一切的一個很好的參考。 – aperkins 2010-09-23 21:24:24

+0

謝謝,我會看到FMPP可以在這裏做什麼。我知道一般情況下圖書館會更好,但我的任務的要求很明確,所以它是源代碼。 – eold 2010-09-23 22:51:55

+0

不要重複自己。 http://en.wikipedia.org/wiki/Don%27t_repeat_yourself – RonU 2010-09-23 23:20:34