2009-08-05 64 views
5

Spring Roo可用於follow standard maven layout的現有項目。 到目前爲止,這似乎意味着不使用maven的項目運氣不佳。我可以在不使用Maven的現有項目中使用Spring roo嗎?

我想知道什麼(如果有的話)是這樣的現有項目的選項。

重新安排項目佈局以符合Maven佈局?對於在CVS有多年曆史的項目來說,這似乎是一個非常困難的途徑,因爲CVS中的method for moving around directories是非常有創意的。

是否有任何其他選項,如修改Maven配置使用非標準佈局?我之前讀到的關於這個主題的回憶,Maven的CoC方法不贊成這種非標準佈局。

編輯:下面

豐富的回答表明,壓倒一切的默認值在超POM是微不足道的。這給我們留下了一個問題,那就是Spring Roo是否會很好地進行這種修改。鑑於Spring Roo本身不使用Maven,這是值得懷疑的。

編輯:

裏奇的最新答案表明,在默認情況下,ROO將使用硬編碼路徑並不會挑你的pom.xml 修改回答所以到目前爲止似乎是,它不是可能是開箱即用的,但可以通過一些自定義編碼完成(或要求ROO團隊支持此操作)

回答

2

沒有理由我們(Roo團隊)不能讓MavenPathResolver允許使用自定義路徑,而我創建PathResolver抽象的一個有意的原因是爲了支持定製公共路徑位置不僅僅是Maven非默認而且還適用於其他構建系統,如Ant + Ivy。已經編寫了所有的基礎Roo插件以使用PathResolver,因此它不應該是支持這一點的主要努力。如果您仍然喜歡此支持,請向Roo Jira instance添加增強請求。

2

您可以修改Maven以使用其他一組約定。標準集繼承自Maven super POM,可以通過重新定義相關屬性來覆蓋。

例如,要將源目錄從src/main/java更改爲src,將test目錄更改爲test-src,並將資源目錄從src/main/resources更改爲資源,您可以在POM中設置以下內容:

<build> 
    <sourceDirectory>src</sourceDirectory> 
    <testSourceDirectory>test-src</testSourceDirectory> 
    <resources> 
    <resource> 
     <directory>resources</directory> 
    </resource> 
    </resources> 
</build> 

要知道,一些插件可能不使用標準的屬性來訪問的位置(如硬編碼,而不是使用$ {} project.build.outputDirectory,所以你可能有奇怪的問題目標/班。


更新:它看起來像Roo curre目前有這些properties hardcoded。您可以替換MavenPathResolver或添加額外的解析器以使用自定義屬性。

如果這對你來說是一個真正的問題,你可以用raise a request來修改MavenPathResolver以允許自定義位置。

+0

任何想法Spring ROO是否可以使用這種修改後的配置?我認爲Spring ROO本身不使用Maven,但生成的項目使用它。 – 2009-08-05 08:40:52

+0

感謝您的更新,Rich。 – 2009-08-05 09:16:13

1

從Roo 1.2開始它沒有實現。

相關問題