2013-02-18 100 views
3

我使用STS開發Grails應用程序,並且需要使用wsimport實用程序生成的一堆類。爲了不與自動生成的源混合我的消息來源,我想添加單獨的目錄,並把那裏生成的類,像這樣:如何將源文件夾添加到Grails應用程序

grails-project 
| 
|-- .classpath 
|-- .groovy 
|-- .project 
|-- .settings 
|-- application.properties 
|-- grails-app 
|-- lib 
|-- scripts 
|-- src 
| |-- groovy 
| |-- java 
| `-- wsimport  <- where I want to make additional source folder 
|-- target 
|-- target-eclipse 
|-- test 
`-- web-app 

我可以添加新的類路徑條目.classpath文件和STS將認識的來源,但是我對Grails做什麼?我需要在某個配置文件中指定它嗎?

回答

6

答案就在這裏:

http://ofps.oreilly.com/titles/9781449323936/chapter_configuration.html

總之,你可以使用的配置是這樣的:

extraSrcDirs = ["$basedir/src/extra1", "$basedir/src/extra2", ...] 

eventCompileStart = { 
    for (String path in extraSrcDirs) { 
     projectCompiler.srcDirectories << path 
    } 
    copyResources buildSettings.resourcesDir 
} 

eventCreateWarStart = { warName, stagingDir -> 
    copyResources "$stagingDir/WEB-INF/classes" 
} 

private copyResources(destination) { 
    ant.copy(todir: destination, 
      failonerror: false, 
      preservelastmodified: true) { 
     for (String path in extraSrcDirs) { 
     fileset(dir: path) { 
      exclude(name: '*.groovy') 
      exclude(name: '*.java') 
     } 
     } 
    } 
} 

這將讓Grails的編譯器知道額外的源文件夾,但我不要以爲STS知道源文件夾就夠了。爲此,您將不得不繼續更新項目的.classpath。

+0

你可以在這裏購買這本書http://shop.oreilly.com/product/0636920024750.do;) – 2013-02-18 18:33:59

+0

@BurtBeckwith是一個更好的選擇。 :-) – 2013-02-18 18:54:24

+0

謝謝!但我必須說,** _ Events.groovy **應該被放置到** scripts/**文件夾中,而不是** events/** – Alex 2013-02-20 11:29:33

相關問題